Excel - Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

 
Vista:
sin imagen de perfil

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por leandro (4 intervenciones) el 29/07/2015 22:54:56
Buena tarde,

Tengo la siguiente macro para copiar una hoja activa y convertirla a pdf y guardarla, sin embargo necesito que el nombre se cree un nuevo archivo con el mismo nombre y que se adicione la fecha al nombre del pdf, es decir no quiero que se reescriba el archivo, si alguien sabe como le agradecería mucho:

Private Sub CommandButton1_Click()

Sheets("Check List").Range("A1:g62").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\C1051447\Desktop\Lista de Verificacion\Check List Blending de Crudo" '& Range("a1").value
Sheets("Check List").Range("A1").Select

End Sub

De antemano, gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por Rafael (38 intervenciones) el 30/07/2015 10:26:38
Prueba con esto...

Igual puedes modificar el formato de la fecha y hasta incluir hora y minutos
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
    Sheets("Check List").Range("A1:G62").Select
    Filename = "C:\Users\C1051447\Desktop\Lista de Verificacion\Check List Blending de Crudo" & _
                    Range("a1").Value & Format(Now, "-yyyymmddhhnnss")
    Debug.Print Filename
    Selection.ExportAsFixedFormat Type:=xlTypePDF, _
          Filename:=Filename
    Sheets("Check List").Range("A1").Select
End Sub

Ya nos contaras....
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por leandro (4 intervenciones) el 30/07/2015 14:20:10
Gracias por tu colaboración, pero por algún motivo el archivo sigue teniendo el mismo nombre anterior (No aparece la fecha ni la hora como parte del nombre) y sigue sobrescribiendo al anterior,
te envió muestra del código que escribí

Private Sub CommandButton1_Click()

Sheets("Check List").Range("A1:g62").Select
Filename = "C:\Users\C1051447\Desktop\Lista de Verificacion\Check List Blending de Crudo" '& Range("a1").value & Format(Now, "-yyyymmddhhnnss")
Debug.Print Filename
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Filename
Sheets("Check List").Range("A1").Select

End Sub,

Envio ademas copia del archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por Rafael (38 intervenciones) el 30/07/2015 14:31:11
Es que lo tienes comentado mira:

Imagen

Quita la comilla simple:
1
Filename = "C:\Users\C1051447\Desktop\Lista de Verificacion\Check List Blending de Crudo" & Range("a1").value & Format(Now, "-yyyymmddhhnnss")

Otro detalle si te llevas este fichero a otro ordenador tu macro no funcionara... yo lo pondria en un directorio comun es mas si no existe el directorio lo crearia...

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por leandro (4 intervenciones) el 30/07/2015 14:40:37
Muchas gracias, ahora si funciona perfectamente (Y), como puedo crear el fichero del cual me hablas? y como configuro esa ruta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por Rafael (38 intervenciones) el 30/07/2015 14:55:24
Una valoracion positiva a mi respuesta no vendria mal jajajaja

Ahora tu has puesto esta ruta:
C:\Users\C1051447\Desktop\Lista de Verificacion\

En mi ordenador no existe ese directorio por lo que la macro enviaria un error ...

A mi me gusta dejar elegir al usuario (hay mas de mil modos de matar a la gallina, por lo que siempre es mejorable todo)

Yo de entrada usaria un nombre de fichero mas corto, y luego abriria un dialogo del sistema asi el usuario busca su directorio, y en su defecto hasta se crea uno nuevo...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub CommandButton1_Click()
    Sheets("Check List").Range("A1:g62").Select
    Filename = GetFolder("C:\") & "\CLBC-" & _
                Range("a1").Value & Format(Now, "-yyyymmddhhnnss")
    Debug.Print Filename
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Filename
    Sheets("Check List").Range("A1").Select
 
End Sub
Function GetFolder(strPath As String) As String
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select a Folder"
        .AllowMultiSelect = False
        .InitialFileName = strPath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
 
NextCode:
    GetFolder = sItem
    Set fldr = Nothing
End Function

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por leandro (4 intervenciones) el 30/07/2015 15:00:35
Muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 175
Ha disminuido su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por JoaoM (222 intervenciones) el 30/07/2015 23:05:11
Hola Rafael

Podrias incluir variables para representar la fecha y hora sin que tenga que usar alguna celda para eso

1
2
3
4
Dim F As String
Dim H As String
F = Format(Date, ("dd-mm-yy")) 'Formato de Fecha. 'Day(Now())
H = VBA.Format(VBA.Time, "hh-mm") 'Formato de hora
Para incluir en

1
2
3
4
5
Range("A1:G62").Select 'rango inicio y final selecionado
 
Selection.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ruta & nombre & F & H, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Con esas variables jamas reescribe el archivo anterior, a menos que sea creado unpo tras otro sin pasar un minuto perio para ello se le agregan los segundos a la variable H

H = VBA.Format(VBA.Time, "hh-mm-ss") 'Formato de hora con minutos ysegundos

Puede crear 2 variables mas, una para la ruta y otra para nombre

ruta "C:\nombrecarpeta\"
nombre = "pepe"

Completa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Seleccion_PDF_2() 'Copia el ancho de papel carta, Hoja unica desde un rango fijo
'SOLO para hoja activa.
Dim F As String
Dim H As String
F = Format(Date, ("dd-mm-yy")) 'Formato de Fecha. 'Day(Now()) 'Incluir en nombre
H = VBA.Format(VBA.Time, "hh-mm") 'Formato de hora 'incluir en nombre
 
nombre = "Pepe"   'Nombre para el archivo
ruta = "C:\Facturas\"
Range("A1:G62").Select 'rango inicio y final selecionado
'con ruta fija C:\0\Facturas
Selection.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ruta & nombre & F & H, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True 'False no abre despues de guardado True si
 
    MsgBox "Se ha guardado a formato PDF en " & ruta & nombre & ".pdf", vbInformation
Range("A2").Select 'celda final selecionada para DESselecionar el rango
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JoaoM
Val: 175
Ha disminuido su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Como hacer que una macro para guardar un excel en .pdf no reescriba el archivo anterior

Publicado por JoaoM (222 intervenciones) el 30/07/2015 23:23:38
Me falto algo

1
2
3
4
5
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre & " " & F & " a las " & H, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True 'False no abre despues de guardado True si
 
    MsgBox "Se ha guardado a formato PDF en: " & ruta & nombre & " " & F & " a las " & H & ".pdf", vbInformation

VALORA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar