Jump to content
SALAVERRINO

Imprimir desde lista Desplegable

Recommended Posts

Buenos tardes a los integrantes de este foro, en esta ocasión recurro a uds para solicitarle su apoyo y colaboración, en como mejorar esta macro, la cual me permite realizar una impresión de boleta de pago de 1 en 1 y ahora lo que requiero es que bajo este código puede grabarlo en PDF en forma masiva o si se puede grabar por cada DNI del trabajador, adjunto detalle:

En la Hoja PLANILLA, se encuentra la base de datos

En la Hoja RESUMEN, mediante una lista desplegable en la celda C1, se lograr filtra los DNI como valores únicos

En la Hoja BOLETA, mediante formulas se logra transponer los datos que deberán ser impreso por cada trabajar su remuneración de la lista desplegable.

Lo que se prende es que el valor de la celda C1 (lista desplegable de la hoja resumen) vayan variando de 1 en 1, para que en la hoja boleta se imprima trabajador por trabajador hasta el ultimo registro (DNI) de esa lista desplegable, espero haberme explicado lo que pretendo obtener como resultado.

Gracias por su apoyo y colaboración.

Option Explicit
 
Sub Imprimir()
    Dim Lin As Long
 
    Sheets(BOLETA).Select Lin = 8
 
    While Sheets(PLANILLA).Range(BS & Lin)  <> ""
        Sheets(RESUMEN).Range(C1) = Sheets(PLANILLA).Range(BS & Lin)
        DoEvents
        ActiveWindow.SelectedSheets.PrintOut _
                     Copies=2, _
                     Collate=True, _
                     IgnorePrintAreas=False
        Lin = Lin + 1
    Wend
End Sub

link de archivo (modulo)

https://drive.google.com/file/d/1uL1XaFLqIy2ShWiXOhvwsKI4YEBvnkmi/view?usp=sharing

 

Share this post


Link to post
Share on other sites

Hola!

Mediante un bucle, se puede realizar

Option Explicit

Sub Imprimir()
    
    '************ by Gerson Pineda ************
    '************ 17/Junio/2019 ************
    
    Dim vrd As Range: Dim c As Range: Dim vhr As Worksheet
    Dim vuf As Long
    
    Application.ScreenUpdating = False
    
    Set vrd = Sheets("PLANILLA").Range("BS:BS").SpecialCells(2, 1)
    Set vhr = Worksheets("Resumen")
    
    For Each c In vrd
        vhr.Range("C1") = c
        vuf = vhr.Range("D:D").SpecialCells(-4123, 1).Count + 8
        vhr.Range("C5:BG" & vuf).PrintOut , , 2
    Next
    
    Set vrd = Nothing: Set vhr = Nothing
    Application.ScreenUpdating = True
    
End Sub

 

Saludos

Share this post


Link to post
Share on other sites

Buenas tardes amigo @Gerson Pineda, la macro esta esta direccionando a la pestaña  RESUMEN mas no a la pestaña BOLETA que es la que debe imprimirse, nuevamente agraedezco el apoyo brindado, una nota adicional esta misma macro se puede acondicionar para que se imprima en PDF en forma masiva y con el nombre BOLETA.

Saludos.

Share this post


Link to post
Share on other sites
Hace 4 minutos , SALAVERRINO dijo:

Buenas tardes amigo @Gerson Pineda, la macro esta esta direccionando a la pestaña  RESUMEN mas no a la pestaña BOLETA que es la que debe imprimirse, nuevamente agraedezco el apoyo brindado, una nota adicional esta misma macro se puede acondicionar para que se imprima en PDF en forma masiva y con el nombre BOLETA.

Saludos.

Intenta realizar las modificaciones, para que de paso, aprendas mucho mas

 

Saludos

Share this post


Link to post
Share on other sites
En 17/6/2019 at 14:53 , Gerson Pineda dijo:

Intenta realizar las modificaciones, para que de paso, aprendas mucho mas

 

Saludos

Buenas noches @Gerson Pineda desde ya agradezco el apoyo brindado, por lo que daria como tema solucionada.

Saludos.

Edited by SALAVERRINO

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5