Saltar al contenido

Modificar una macro que guarda en pdf y elo envia por correo


Recommended Posts

publicado

Muy buenas,

Tengo una macro que he podido ver por la red que me permite guardar una hoja de excel en formato pdf y la envia por correo. Lo que neceisto es que al guardar en PDF me permita poder ponerle el nombre de archivo, y no utilizar el mismo siempre y que lo este machacnadop.

Os paso la macro ç, por si podeis echarme una mano, soy un usuario basico en esto de las macros y llevo poco timpo, por lo que se me compplica y esta funcionalidad la necesito.

Gracias.

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range
 
Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
 
If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"
 
'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If
 
Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
     
    'Create Outlook email
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

 

Gracias por vuestra colaboracion.

Saludos.

publicado

@Cronopio

Dim nbre As String
 
nbre=Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, Title:="Guardar como PDF", _
    fileFilter:="PDF (*.pdf), *.pdf")
 
If nbre = "" Then Exit Sub
 
Selection.ExportAsFixedFormat xlTypePDF, Filename & nbre, , , False, OpenAfterPublish:=True

No subes tu archivo, asique solo puedo ponerte el procedimiento para elegir nombre y exportarlo con ese nombre

Dim nbre As String
 
nbre=Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, Title:="Guardar como PDF", _
    fileFilter:="PDF (*.pdf), *.pdf")
 
If nbre = "" Then Exit Sub
 
Selection.ExportAsFixedFormat xlTypePDF, Filename & nbre, , , False, OpenAfterPublish:=True

publicado
Hace 10 horas, Haplox dijo:

@Cronopio


Dim nbre As String
 
nbre=Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, Title:="Guardar como PDF", _
    fileFilter:="PDF (*.pdf), *.pdf")
 
If nbre = "" Then Exit Sub
 
Selection.ExportAsFixedFormat xlTypePDF, Filename & nbre, , , False, OpenAfterPublish:=True

No subes tu archivo, asique solo puedo ponerte el procedimiento para elegir nombre y exportarlo con ese nombre

Dim nbre As String
 
nbre=Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name, Title:="Guardar como PDF", _
    fileFilter:="PDF (*.pdf), *.pdf")
 
If nbre = "" Then Exit Sub
 
Selection.ExportAsFixedFormat xlTypePDF, Filename & nbre, , , False, OpenAfterPublish:=True

Hola Haplox, no tenia conocimiento de que se subiese el archivo. Lo paso y lo ves. Gracias

Guardar PDF y enviar.txt

publicado
Hace 12 horas, Cronopio dijo:

Hola Haplox, no tenia conocimiento de que se subiese el archivo. Lo paso y lo ves. Gracias 

Hombre, me referia al excel ;)

Te dejo el fichero modificado. En el cuadro de dialogo ahora debes poner el nombre que quieras

 

Copia de_Guardar PDF y enviar.txt

publicado
Hace 12 horas, Haplox dijo:

Hombre, me referia al excel ;)

Te dejo el fichero modificado. En el cuadro de dialogo ahora debes poner el nombre que quieras

 

Copia de_Guardar PDF y enviar.txt

Perdona HAPLOX, al rato de enviarte el archivo "erróneo" me di cuenta que me equivoqué, pero muchas gracias por tu solución. Funciona perfectamente. Gracias de nuevo.

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.