Exportar excel a txt y Pdf en mismo procesos
Para Dante Amor.
Dante, ¿cómo estas?
Te molesto por lo siguiente, necesito exportar a txt y pdf. Actualmente tengo una macro que me exporta a Pdf las hojas que utilice según una condición dada. Ahora necesito que que me exporte todo en una misma hoja. El excel es para tomar pedidos, tiene diferentes productos en cada hoja. No se si es posible esto, y que datos necesitas.
Hay una macro que se ejecuta que se llama call previa que lo que haces es filtrar solo las filas que tienen cantidad diferente a cero.
Te paso la macro que me armaste anteriormente.
Sub GuardarPDF()
'
'
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Set l1 = ThisWorkbook
Set h1 = l1.Sheets("Hoja1") 'Primera hoja donde vas a poner el cliente
Set l2 = Workbooks.Add
Set H2 = l2.Sheets(1)
'
ruta = "P:\Matriz\"
n = -1
cliente = h1.Range("G4")
If cliente = "" Then
MsgBox "Debes capturar el cliente en la primera hoja", vbCritical
Exit Sub
End If
'
l1.Activate
For Each h In l1.Sheets
If h.Visible = -1 Then
h.Select
ActiveSheet.Unprotect
h.[G4] = cliente
If h.[L4] <> 0 Then
h.Select
Call Previa
n = n + 1
u = h.UsedRange.Rows(h.UsedRange.Rows.Count).Row
u2 = H2.UsedRange.Rows(H2.UsedRange.Rows.Count).Row + 1
h.Rows("1:" & u).Copy
H2.Range("A" & u2).PasteSpecial xlValues
If nomb = "" Then
nomb = h.[G4] & " " & Format(h.Range("G2"), "dd-mm-yyyy") + Format(Now, "(hh'mm)") & ".xlsx"
End If
End If
End If
Next
'
l2.SaveAs Filename:=ruta & nomb, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l2.Close False
'
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)
'
Set dam = CreateObject("outlook.application").createitem(0)
dam.To = correos
dam.Subject = nomb
dam.Body = "Orden de Pedido"
dam.Attachments.Add ruta & nomb
'dam.Send 'El correo se envía en automático
dam.Display 'El correo se muestra
'
MsgBox "Orden lista para enviar, favor revisar correo"
End If
Call NuevoUnificada
End Sub
Respuesta de Programar Excel
1
1 respuesta más de otro experto
Respuesta de Dante Amor
2
