Macro copie formato identico, coloque datos e Imprima

Lic. Dante Amor, favor de apoyar en generar Macro copie formato, coloque datos e imprima, el archivo se lo envie a su correo, espero me pueda ayudar con la creacion de la macro

1 respuesta

Respuesta
1

Te anexo las macros

Sub GenerarFormatos()
'Por.Dante Amor
    Set h1 = Sheets("Datos")
    Set h2 = Sheets("Formato")
    borrarhojas
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        nom = Left(h1.Cells(i, "B"), 30)
        h2.Copy After:=Sheets(Sheets.Count)
        ActiveSheet.[E19] = h1.Cells(i, "B")
        ActiveSheet.[E17] = h1.Cells(i, "C")
        ActiveSheet.Name = nom
    Next
End Sub
Sub borrarhojas()
'Por.Dante Amor
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    For Each h In Sheets
        Select Case h.Name
            Case "Datos", "Formato"
            Case Else: h.Delete
        End Select
    Next
End Sub
Sub ImprimirFormatos()
'Por.Dante Amor
    For Each h In Sheets
        Select Case h.Name
            Case "Datos", "Formato"
            Case Else: h.PrintOut Copies:=1, Collate:=True
        End Select
    Next

Incluí la macro borrarhojas, para que cada vez que ejecutes generarformatos, se borren las hojas y se creen las nuevas.


buenas noches...

Lic. exelente  la solucion le agradezco por el apoyo 

consulta como quedaria los codigos que al ejecutar la macro de imprimir me de opcion desea imprimir si o no 

saludos

¡Gracias! 

¿De imprimir o de generar?

¿Si quieres generar y al terminar de generar que te pregunte si quieres imprimir?

Cambia GenerarFormatos por esta

Sub GenerarFormatos()
'Por.Dante Amor
    Set h1 = Sheets("Datos")
    Set h2 = Sheets("Formato")
    borrarhojas
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        nom = Left(h1.Cells(i, "B"), 30)
        h2.Copy After:=Sheets(Sheets.Count)
        ActiveSheet.[E19] = h1.Cells(i, "B")
        ActiveSheet.[E17] = h1.Cells(i, "C")
        ActiveSheet.Name = nom
    Next
    If MsgBox("Imprimir", vbQuestion + vbYesNo, "IMPRIMIR") = vbYes Then
        ImprimirFormatos
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas