Visual Basic para Aplicaciones - Error al guardar archivo en pdf

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de César
Val: 10
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error al guardar archivo en pdf

Publicado por César (6 intervenciones) el 25/05/2018 23:01:41
Buenas

Tengo un pequeño problema con una macro al guardar una hoja de excel en pdf, la macro es la siguiente:
1
2
3
4
5
6
7
8
Dim Ruta As String
Ruta = Application.GetSaveAsFilename()
Dim rng As Range
Set rng = Range("A1:F30")
rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ruta & Range("B4").Value _
& " " & Range("A1").Value & " " & Range("F3").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=1, OpenAfterPublish:=True

Puedo seleccionar la carpeta donde quiero guardar el archivo pero, una vez guardado el archivo, el nombre que me guarda empieza por falso más el nombre que le indico para guardar.
De esta forma: FalsoNombreDeArchivo.pdf

¿Cuál creéis que puede ser el problema?

Muchas gracias de antemano
ElOr
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
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error al guardar archivo en pdf

Publicado por Antoni Masana (498 intervenciones) el 28/05/2018 07:16:06
¿Que contiene la celda B4? y ¿La celda A1? y ¿La celda F3?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim Ruta As String
Ruta = Application.GetSaveAsFilename()
Dim rng As Range
Set rng = Range("A1:F30")
 
rng.ExportAsFixedFormat Type:=xlTypePDF, _
                        Filename:=Ruta & Range("B4").Value & " " & _
                                         Range("A1").Value & " " & :
                                         Range("F3").Value & ".pdf", _
                        Quality:=xlQualityStandard, _
                        IncludeDocProperties:=True, _
                        IgnorePrintAreas:=True, _
                        From:=1, _
                        To:=1, _
                        OpenAfterPublish:=True

Opciones para depurar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim Ruta As String
Ruta = Application.GetSaveAsFilename()
Dim rng As Range
Set rng = Range("A1:F30")
 
MsgBox "1.- " & Ruta
MsgBox "2.- " & Range("B4").Value
MsgBox "3.- " & Range("A1").Value
MsgBox "4.- " & Range("F3").Value
 
rng.ExportAsFixedFormat Type:=xlTypePDF, _
                        Filename:=Ruta & Range("B4").Value & " " & _
                                         Range("A1").Value & " " & :
                                         Range("F3").Value & ".pdf", _
                        Quality:=xlQualityStandard, _
                        IncludeDocProperties:=True, _
                        IgnorePrintAreas:=True, _
                        From:=1, _
                        To:=1, _
                        OpenAfterPublish:=True

Saludos.
\\//_
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 César
Val: 10
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error al guardar archivo en pdf

Publicado por César (6 intervenciones) el 28/05/2018 15:28:30
Buenos días

Gracias de nuevo por tu tiempo Antoni

Pues las celdas contienen:
B4 Nombre del Cliente
A1 "Factura" La verdad es que aquí podría poner directamente "Factura" en la orden para el nombre......
F3 Número de factura. es el mismo libro del ajuste del tamaño del rango.

Probaré el método que me has dado para depurar a anda que tenga un rato y te respondo con el resultado.

Muchas gracias.
ElOr
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 César
Val: 10
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error al guardar archivo en pdf

Publicado por César (6 intervenciones) el 29/05/2018 16:10:03
Buenas tardes

Ya veo donde tengo el problema.

El primer mensage que me tira es el de la cadena "ruta" y es donde pone falso.....

En teoría
1
Application.GetSaveAsFilename()
es para poder elegir la ruta en la que voy a guardar el archivo, no sé porqué me devuelve un "falso"... No sé si debo ponerlo de otra forma.

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 César
Val: 10
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error al guardar archivo en pdf

Publicado por César (6 intervenciones) el 29/05/2018 16:58:00
Buenas tardes

Mirando por ahí, he encontrado otra forma de hacerlo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim Ruta As String
Dim rng As Range
Set rng = Range("A1:F31")
With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Seleccionar carpeta para guardar factura"
    .Show
    If .SelectedItems.Count = 0 Then
    'Nada
    Else
    Ruta = .SelectedItems(1)
    End If
    End With
rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ruta & Range("B4").Value _
& " Factura " & Range("F3").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=1, OpenAfterPublish:=True

El archivo me lo guarda con el nombre que le pido, pero ahora tengo un "problemilla"

Al guardarlo se me abre el cuadro de diálogo para elegir carpeta
CuadroDialogo
pero si os fijáis, no me aparece el nombre del archivo, sin embargo, si le doy a cancelar, me guarda el archivo con el nombre correcto.
¿Hay alguna forma de que me aparezca el nombre del archivo en el cuadro de diálogo?

Gracias por tu tiempo y paciencia
ElOr
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