Macro para Guardar Archivo Excel con nombre de hoja Variable y fecha actual.

Consulto por que tengo una macro que realiza hojas nuevas donde contengan los campos mencionados en la columna B "Tipo de Envio" y la Columna G "Fecha_Anvio",

Como resultado siempre arroja hojas con el nombre ,"AMBA",  "Int_N_Andreani", " Int_N_Cruz_del_Sur" o "Int_N1_Andreani". Siempre sumandole el campo de la columna "G", por lo que siempre el resultado es por ejemplo: "Int_N1_Andreani_22_02_2017".

Ahora, Como podría guardar por ejemplo la hoja que se genere en una ubicación "C:\Campañas\Envíos" ¿con la fecha del día de hoy + el nombre de la hoja?

Ejemplo para hoy seria una hoja nueva "Int_N1_Andreani_22_02_2017" y guardarla como archivo csv con nombre 21-02-2017_Int_N1_Andreani_22_02_2017

1 respuesta

Respuesta
1

H   o la:

Te anexo otra macro para guardar cada hoja como CSV

Sub Guardar_Hojas()
'****
'   Por.Dante Amor
'****
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\Campañas\Envíos\"
    ruta = "C:\trabajo\"
    For Each h In Sheets
        If LCase(h.Name) <> "final" Then
            nombre = Format(Date, "dd-mm-yyyy") & "_" & h.Name
            h.Copy
            ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".csv", _
                FileFormat:=xlCSV, CreateBackup:=False
            ActiveWorkbook.Close False
        End If
    Next
    MsgBox "Fin"
End Sub

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

Estimado! Desde ya mil gracias pero una consulta por que me tiro un error, ¿qué podrá ser?

Me marca justo la línea "h.Copy"

Mil gracias!

¿Tienes hojas ocultas o protegidas o algo?

Sí, tienes hojas ocultas.

Utiliza esta macro.

Sub Guardar_Hojas()
'****
'   Por.Dante Amor
'****
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\Campañas\Envíos\"
    ruta = "C:\trabajo\"
    For Each h In Sheets
        If LCase(h.Name) <> "final" Then
            If h.Visible = -1 Then
                nombre = Format(Date, "dd-mm-yyyy") & "_" & h.Name
                h.Copy
                ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".csv", _
                    FileFormat:=xlCSV, CreateBackup:=False
                ActiveWorkbook.Close False
            End If
        End If
    Next
    MsgBox "Fin"
End Sub

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

Si ocultas hay dos hojas una "Campañas" y otra "MySql", ahora las puse visibles ... se las dejo visibles quedarían las hojas "Campañanas, "MySQL", "Final", más las que se crean con la macro anterior, las que tendría que guardar solamente serian las que se crean con la variable nombre de tipo de envío y fecha + la fecha de hoy delante del nombre de archivo

Ya te envié la actualización, puedes dejar las hojas ocultas.

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

ahora me tira este error,  y me marca en el guardado...

¿

Quieres que te envíe el archivo? ¿A ver si hay algo más?

¿Pero si te generó algún archivo CSV o ninguno?

Alguna de tus hojas tiene algún caracter como:  " # % * : < > ? / \ |

Envíame tu archivo para revisar tus hojas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Felipe Vega” y el título de esta pregunta.

Borra esta línea de la macro

ruta = "C:\trabajo\"

quedaría así:

Sub Guardar_Hojas()
'****
'   Por.Dante Amor
'****
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\Campañas\Envíos\"
    For Each h In Sheets
        If LCase(h.Name) <> "final" Then
            If h.Visible = -1 Then
                nombre = Format(Date, "dd-mm-yyyy") & "_" & h.Name
                h.Copy
                ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".csv", _
                    FileFormat:=xlCSV, CreateBackup:=False
                ActiveWorkbook.Close False
            End If
        End If
    Next
    MsgBox "Fin"
End Sub

Yo pongo la ruta "C:\trabajo\" para realizar mis pruebas, de lo contrario tendría que crear muchas carpetas, pero ahora se me pasó borrar esa línea. Por eso no puede crear el archivo, porque la carpeta no existe.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas