Imprimir los datos de consulta

ahora puedes ayudarme... Mira

Tengo la siguiente consulta... Lo que quiero es esta misma consulta imprimirla, que ya no se envíe a pantalla sino a la impresora...

Besos

Private Sub CommandButton1_Click()
On Error GoTo noencontro
Sheets("Saldosconsolidados").Select
Set busco = ActiveSheet.Range("A:A").Find(TextBox1, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then
TextBox2 = busco.Offset(0, 1)
TextBox3 = busco.Offset(0, 2)
TextBox4 = busco.Offset(0, 3)
TextBox5 = busco.Offset(0, 4)
TextBox6 = busco.Offset(0, 5)
TextBox7 = busco.Offset(0, 6)
TextBox8 = busco.Offset(0, 7)
TextBox9 = busco.Offset(0, 8)
TextBox10 = busco.Offset(0, 9)
TextBox11 = busco.Offset(0, 10)
TextBox12 = busco.Offset(0, 11)
TextBox13 = busco.Offset(0, 12)
TextBox14 = busco.Offset(0, 13)
TextBox15 = busco.Offset(0, 14)
'así con el resto
Else
noencontro:
MsgBox "No encontró el dato"
End If
Exit Sub
End Sub

Respuesta
1

Aún no me queda claro el alcance de '... esta misma consulta imprimirla...'

¿Qué deseas: imprimir el Userform con todos los datos antes de limpiarlo, o imprimir una hoja aparte donde coloques estos datos?

Si es lo 1ro solo se puede imprimir bien ubicado un Userform en modo de imagen,

Para lo 2do debes volcar los datos primero (*) y luego imprimir el rango de hoja.

(*) Con instrucciones del tipo:

Range("A" & fila ) = textbox1

range("B" & fila) = textbox2 donde previamente asignas a la variable el nro de fila que corresponda.

Quedo atenta a tus aclaraciones.

Elsa, lo que quiero es la segunda opción, imprimir los datos buscados en una hoja.

Pero no entiendo la sintaxis que me estas indicando..

Pero yo no sé dónde irá cada campo y en qué hoja. Trataré de explicar algunas líneas más:

El Userform tendrá un botón para guardar en la hoja, ¿verdad?

Entonces esta sería una rutina modelo. Como verás hay varios modos de hacer esta tarea, seleccionando o no la hoja de destino, buscando la primer fila libre o no, quizás tengas una hoja tipo formato y allí irás acomodando los datos... bueno, habrá que poner algo de atención y no es nada difícil.

Private Sub CommandButton2_Click()
'por Elsamatilde
'si vas a seleccionar la hoja de destino usá:
Sheets("Hoja5").Select

'y luego movés los datos allí:

ActiveSheet.Range("A4") = Textbox1

ActiveSheet.Range("C3") = Textbox2

'----------------
'si en cambio no querés seleccionar la hoja solo enviarle los datos allí
'anteponés su nombre a cada rango, por ej;

Sheets("Hoja5").Range("A4") = Textbox1
Sheets("Hoja5").Range("C3") = Textbox2

'--------------------
'Una vez pasados todos los datos llega la instrucción de impresión:
'si no seleccionaste la hoja mencionala al imprimir
Sheets("Hoja5").PrintOut
'sino solo sería:
ActiveSheet.PrintOut
End Sub

Por favor: o una instrucción o la otra... solo leé los comentarios con atención y cuando la tengas lista si algo no sale como lo esperado, escribime cómo te quedó y lo que le falta o sobra.

PD) En la sección Macros de mi sitio hay material de ejemplo, también la sección Descarga tiene ejemplos de uso gratuito, y luego por supuesto te recomiendo el manual de Programación y/o Formularios.

Gracias Elsa.

El form no tiene un botón de guardar.

Tiene uno para consultar y funciona correctamente.

Luego incluí un botón para imprimir. En el cual lo que quiero es que al presionarlo

envíe los datos consultados previamente a la impresora. No quiero imprimir el Form , sino los datos consultados en el .

¿Y no probaste con la rutina que ya te envié? Solo tenés que ajustar los nombres de tus controles y la ubicación de cada dato... comprenderás que si no me dejas ninguna referencia no puedo hacerte la macro exacta (experta sí pero adivina no, je je)... este modelo es justo lo que necesitas:

Private Sub CommandButton2_Click()
'por Elsamatilde
'si vas a seleccionar la hoja de destino usá:
Sheets("Hoja5").Select 'sino se tomará la hoja activa = ActiveSheet
'y luego movés los datos allí:
ActiveSheet.Range("A4") = Textbox1
ActiveSheet.Range("C3") = Textbox2
'----------------

'Una vez pasados todos los datos llega la instrucción de impresión:
'si no seleccionaste la hoja mencionala al imprimir
'Sheets("Hoja5").PrintOut 'ahora queda inhabilitada, habilitá 1 de las 2
'sino solo sería:
ActiveSheet.PrintOut
End Sub

PD) Una vez que la tengas escrita si te dá algún error presioná el botón depurar . Escribime la macro tal como te quedó indicando la línea de error.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas