Ejecutar Macros antes y después de guardar a PDF
Para Dante Amor,
¿Dante cómo estas? Necesito si me podes ayudar con un problema que me surgió últimamente. Como puedo hacer para que antes de guardar y enviar por mail se ejecute una macro que me filtra las celdas solo con ventas de las hojas activas y que al finalizar me ejecute otra para dejar todo en cero. Yo tengo una macro por cada hoja. Para filtrar y para borrar. Tengo la celda M4 que si es diferente a Cero que ejecute las dos macros. Espero que me puedas ayudar!
Te adjunto la macro que uso para guardar y enviar por mail.
Sub GuardarPDF_2()
'Por.Dante Amor
Dim hojas()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ruta = "C:\Ventas\Facturación 2016\"
'ruta = "C:\trabajo\"
n = -1
Set h1 = Sheets("Hoja1") 'Primera hoja donde vas a poner el cliente
'
cliente = h1.Range("G4")
If cliente = "" Then
MsgBox "Debes capturar el cliente en la primera hoja", vbCritical
Exit Sub
End If
'
For Each h In Sheets
h.[G4] = cliente
If h.[L4] <> 0 Then
n = n + 1
ReDim Preserve hojas(n)
hojas(n) = h.Name
If nomb = "" Then
nomb = h.[G4] & " " & Format(h.Range("G2"), "dd-mm-yyyy") + Format(Now, "(hh'mm)") & ".pdf"
End If
End If
Next
'
If n > -1 Then
usuario = Environ$("computername")
Set h = Sheets("usuarios")
Set b = h.Columns("A").Find(usuario)
If b Is Nothing Then
MsgBox "El usuario: " & usuario & " no existe en la hoja 'usuarios'", vbCritical
Exit Sub
End If
'
correos = b.Offset(0, 1)
Sheets(hojas).Copy
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nomb, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close False
'
Set dam = CreateObject("outlook.application").createitem(0)
dam.To = correos
dam.Subject = nomb
dam.Body = "Orden de Pedido"
dam.Attachments.Add ruta & nomb
dam.Display 'El correo se envía en automático
'dam.Display 'El correo se muestra
'
MsgBox "Orden lista para enviar, favor revisar correo"
End If
End Sub