Crear nueva hoja en mismo archivo pero con fecha.

Tengo un archivo en el cual deseo copear la misma hoja (Formato) "n" veces por medio de un botón de crear, y que la nueva hoja se cree con el titulo de la fecha de su creación, la hoja original (Formato) contiene formulas, celdas protegidas y formato. ¿Cómo podría ser la macro para que se puedan duplicar el formato con titulo de fecha en la pestaña?

2 Respuestas

Respuesta

¿El título va en una celda? ¿En cuál celda?

¿Cómo se va a llamar la nueva hoja?

El titulo me refiero al nombre de la hoja, esta requiero que cuando es copiada su nombre debe de ser la fecha cuando fue generada dicha copia.

Pon la siguiente macro en un botón

Sub Copiar_Hoja()
'Por.Dante Amor
    fecha = Format(Date, "dd-mmm-yyyy")
    existe = False
    For Each h In Sheets
        If LCase(h.Name) = LCase(fecha) Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        MsgBox "Ya existe una hoja con la fecha de hoy"
    Else
        Sheets("formato").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = fecha
        MsgBox "Hoja creada"
    End If
End Sub

Ejemplo de nombre de hoja

02-mar-2018

Si quieres crear 2 veces la hoja el mismo día te envía un mensaje.


.

.

Una ultima: Necesito ocasionalmente crear hojas con la misma fecha, ¿puede hacer que la macro me de la opción de crear hojas con la misma fecha? Aunque se le asigne un numero adicional de hoja después de la fecha.

Te anexo la macro actualizada

Sub Copiar_Hoja()
'Por.Dante Amor
    fecha = Format(Date, "dd-mmm-yyyy")
    existe = False
    n = 0
    nombre = LCase(fecha)
    Do While True
        For Each h In Sheets
            If LCase(h.Name) = nombre Then
                existe = True
                Exit For
            End If
        Next
        If existe Then
            n = n + 1
            nombre = LCase(fecha) & "-" & n
            existe = False
        Else
            Exit Do
        End If
    Loop
    'If existe Then
    '    MsgBox "Ya existe una hoja con la fecha de hoy"
    'Else
        Sheets("formato").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = nombre
        MsgBox "Hoja creada"
    'End If
End Sub

.Sal u dos. Dante Amor. R ecuerda valorar la respuesta

Respuesta

Este ejemplo

https://youtu.be/pVsqucqK6DY

Si requieres que el nombre sea de una simplemente en name pon la fecha y listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas