Copiar libro y cambiar el nombre mediante botón.

Espero que puedan ayudarme, tengo un archivo en el cual tengo que rellenar algunos datos diariamente, he creado un botón, con el cual genero una copia de la hoja denominada base que esta en blanco, y que se nombra con la fecha actual del sistema. Lo que no consigo llegar a hacer es que el primer día de cada mes se copie el archivo llamado plantilla, con el nombre del mes y año en curso y el anterior se guarde en ese mismo directorio. Asi mes a mes, impidiendo, claro, que en un libro de por ejemplo febrero que tiene 28 dias, se pueda crear hoja 30-feb-2017.

1 Respuesta

Respuesta
2

Para copiar un archivo puedes utilizar lo siguiente:

Sub Copiar_Plantilla()
'Por.Dante Amor
    ruta = ThisWorkbook.Path & "\"
    arch = "plantilla.xlsx"
    If Dir(ruta & arch) = "" Then
        MsgBox "El archivo plantila no existe"
        Exit Sub
    End If
    nuevo = Format(Date, "mmmm-yyyy")
    FileCopy ruta & arch, ruta & nuevo
    MsgBox "Archivo plantilla compiado como: " & nuevo
End Sub

No entiendo a qué te refieres con " y el anterior se guarde en ese mismo directorio", cuál es el anterior? el mismo libro que contiene la macro es el anterior?

Para crear hojas, considerando únicamente las fechas del mes, de esa forma no tendrás una hoja llamada "30-feb-2018", podrías ocupar la siguiente macro:

Sub Crear_Hoja()
'Por.Dante Amor
    hoja = Format(Date, "dd-mmm-yyyy")
    For Each h In Sheets
        If LCase(Name) = LCase(hoja) Then
            MsgBox "La hoja ya existe"
            Exit Sub
        End If
    Next
    Sheets("base").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = hoja
    MsgBox "hoja nueva creada: " & hoja
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas