Macro que exporte datos a una hoja e imprima

Que tal? Pues mi pregunta es clara, requiero copiar de una base de datos que se encuentra en una y exportarlos a una hoja de salida, la impresión seria de la siguiente manera, de la base de datos cada línea contiene datos específicos, esos datos deben ser impresos en un formato que se encuentra en otra hoja de Excel del mismo libro pero cada línea se debe imprimir en una hora individual, en este mismo sitio de TODO EXPERTOS encontré una solución a este mismo problema que se me presenta y encontré un código que funciona bien, lo único es que solo imprime la primer fila, lo demás lo manda en blanco, mi teoría es que el error existe en la siguiente línea de comando "Final = Range("A" & Rows.Count).End(xlUp).Row" pero no se si sea así, les dejo el código completo que escribió el experto "jerryeagle" para saber cual fue o puede ser la solución a el problema, de antemano GRACIAS.
Sub Imprimir()
Dim Nombre, Nit, NoCuenta As String
Dim Inicial, Final As Integer
Application.ScreenUpdating = False
Inicial = 3
Sheets("base").Select
Final = Range("A" & Rows.Count).End(xlUp).Row
For Inicial = Inicial To Final
Nombre = Cells(Inicial, "A")
Nit = Cells(Inicial, "B")
NoCuenta = Cells(Inicial, "C")
With Sheets("firmas")
.Select
.Range("B3") = Nombre
.Range("D3") = Nit
.Range("D6") = NoCuenta
.PrintOut
End With
Next
Application.ScreenUpdating = True
MsgBox "Proceso Terminado", vbInformation
End Sub
NOTA: Pueden hacer una prueba con 3 lineas con datos como nombre, edad, y sexo, o no se, lo que se les ocurra para que vean como funciona el código y cual es el problema que tiene...

1 Respuesta

Respuesta
1
Sub Imprimir()
Dim Nombre, Nit, NoCuenta As String
Dim Inicial, Final As Integer
Application.ScreenUpdating = False
Inicial = 3
Sheets("base").Select
Final = Range("A" & Rows.Count).End(xlUp).Row
For Inicial = Inicial To Final
Nombre = Cells(Inicial, "A")
Nit = Cells(Inicial, "B")
NoCuenta = Cells(Inicial, "C")
With Sheets("firmas")
'.Select  QUITAR esta LINEA
.Range("B3") = Nombre
.Range("D3") = Nit
.Range("D6") = NoCuenta
.PrintOut
End With
Next
Application.ScreenUpdating = True
MsgBox "Proceso Terminado", vbInformation
End Sub
MUCHAS GRACIAS, FUNCIONA A LA PREFECCION, ya para finalizar me gustaría saber cuál era el problema y porque se tiene que eliminar la línea indicada y si tienes algún libro o manual que me puedas recomendar sobre todos los comandos que se pueden utilizar en Excel y la función de cada uno, SALUDOS Y GRACIAS.
Se tiene que quitar porque la selecciona o activa, y así en lugar de tomar los datos de la base de datos, intenta tomar los valores de la hoja que se imprime.
Por lo de los libros, no tengo, en su momento si leí libros (E-Books) pero no se donde los guarde o si aun los tengo :P, pero realmente solo tome lo que necesitaba saber y todo lo demás lo aprendí con la practica, viendo tutoriales o leyéndolos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas