Para Dante, Código para poner días de la semana según fecha de hojas.

Hola! Dante 

Quería saber como puedo realizar para que a partir de la fila 57 de la Hoja "INGRESO Datos" se coloque los días de la semana según nombres de las hojas , estas hojas llevan los nombres según calendario, intente realizar lo pero sin resultado, solo me pone del día actual lo cual no es lo correcto los nombres debería de ponerse según a las fechas que ingresan de la fila 56 de la hoja "INGRESO Datos". El código que me diste anteriormente con otro tema es la siguiente.

Sub Copia_M3() 
'Por Dante
  Application.ScreenUpdating = False
    Set h1 = Sheets("INGRESO DATOS")
    For Each h In Sheets
        If InStr(1, h.Name, ".") > 0 Then
            celda22 = h.[J22]
            celda23 = h.[J23]
            Celda24 = h.[J24]
            celda25 = h.[J25]
            celda26 = h.[J26]
            Celda27 = h.[J27]
            celda30 = h.[J30]
            Set b = h1.Rows(56).Find(h.Name)
            If Not b Is Nothing Then
                h1.Cells(59, b.Column) = h.[J27]
                h1.Cells(61, b.Column) = h.[J22]
                h1.Cells(63, b.Column) = h.[J23]
                h1.Cells(65, b.Column) = h.[J24]
                h1.Cells(67, b.Column) = h.[J25]
                h1.Cells(69, b.Column) = h.[J26]
                h1.Cells(73, b.Column) = h.[J30]
            Else
                u = h1.Cells(56, Columns.Count).End(xlToLeft).Column + 1
                If u < 3 Then u = 3
                h1.Cells(56, u) = h.Name
                h1.Cells(57, u) = Format(Now, "dddd")
                h1.Cells(59, u) = h.[J27]
                h1.Cells(61, u) = h.[J22]
                h1.Cells(63, u) = h.[J23]
                h1.Cells(65, u) = h.[J24]
                h1.Cells(67, u) = h.[J25]
                h1.Cells(69, u) = h.[J26]
                h1.Cells(73, u) = h.[J30]
            End If
        End If
    Next
    MsgBox "Copia de datos terminado", vbInformation, ""
End Sub

Este código lo adapte según a lo que requiero, gracias dante por la ayuda que me puedas dar.

1 Respuesta

Respuesta
1

Puedes poner un ejemplo de cómo se llaman las hojas y qué es lo que quieres en la fila 57

Hola! Dnate 

Gracias por la rápida respuesta, te comento que las Hojas siempre están cambiando de nombre según fecha de calendario en realidad tengo 35 hojas de la cuales 4 son de gráficos, de formulas y una de ellas es la base de datos en las que se almacena toda la data del mes la hoja lleva el nombre de "INGRESO DATOS" , en esta hoja Jala la información de las 31 hojas restantes de las cuales la fila 57 lleva el nombre del día de la fecha ingresada en la fila 56 por ejemplo:

fila 56 esta con fecha de las hojas

fila 57 debe poner que día de la semana es con la fecha de la fila 56

espero que se entienda  este ejemplo gracias.

Quedaría así

Sub Copia_M3()
'Por Dante
  Application.ScreenUpdating = False
    Set h1 = Sheets("INGRESO DATOS")
    For Each h In Sheets
        If InStr(1, h.Name, ".") > 0 Then
            celda22 = h.[J22]
            celda23 = h.[J23]
            Celda24 = h.[J24]
            celda25 = h.[J25]
            celda26 = h.[J26]
            Celda27 = h.[J27]
            celda30 = h.[J30]
            Set b = h1.Rows(56).Find(h.Name)
            If Not b Is Nothing Then
                h1.Cells(59, b.Column) = h.[J27]
                h1.Cells(61, b.Column) = h.[J22]
                h1.Cells(63, b.Column) = h.[J23]
                h1.Cells(65, b.Column) = h.[J24]
                h1.Cells(67, b.Column) = h.[J25]
                h1.Cells(69, b.Column) = h.[J26]
                h1.Cells(73, b.Column) = h.[J30]
            Else
                u = h1.Cells(56, Columns.Count).End(xlToLeft).Column + 1
                If u < 3 Then u = 3
                h1.Cells(56, u) = h.Name
                '
                fec1 = Split(h1.Cells(56, u), ".")
                fec2 = DateSerial(fec1(2), fec1(1), fec1(0))
                h1.Cells(57, u) = Format(fec2, "dddd")
                '
                h1.Cells(59, u) = h.[J27]
                h1.Cells(61, u) = h.[J22]
                h1.Cells(63, u) = h.[J23]
                h1.Cells(65, u) = h.[J24]
                h1.Cells(67, u) = h.[J25]
                h1.Cells(69, u) = h.[J26]
                h1.Cells(73, u) = h.[J30]
            End If
        End If
    Next
    MsgBox "Copia de datos terminado", vbInformation, ""
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas