Cuadro combinado e impresión de datos

05/11/2006 - 06:38 por ElAlumno | Informe spam
Hola todos:

Vengo en busca de su ayuda en el siguiente tema:

Tengo una pequeña base de datos en la Hoja1 de Excel (unos 300
registros + ó -) y en las diferentes celdas de la Hoja2 he diseñado
un recibo de pago, el cual funciona con base en una lista desplegable
de un "ComboBox" que permite seleccionar el nombre de la persona y con
ese nombre se cargan todos los demás datos del recibo, que luego se
debe imprimir (uno a uno) con el uso de un botón.

Pues todo era sencillo hasta que las personas pasaron de 100, cifra que
ha hecho algo complejo (demorado) el proceso de impresión.

La inquietud que me asiste es:
a) Que codigo (VBA) puedo utilizar, que con un solo clic en un botón,
imprima la totalidad de los recibos correspondientes a todos los 300
registros?
-Adicionalmente:
¿Con que código cargo el "nombre de la persona" en la propiedad
"Text" de la categoría "Dato" de la propiedad del "ComboBox", que es
la referencia para que los demas datos llenen el recibo?

Espero haber expresado con claridad mis inquietudes y gracias por su
ayuda.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/11/2006 - 21:34 | Informe spam
hola, manuel !

... una... base de datos en la Hoja1... (unos 300 registros + o -) y en... diferentes celdas de la Hoja2
... un recibo de pago... funciona con base en una lista desplegable de un "ComboBox"
.. permite seleccionar el nombre de la persona y... se cargan todos los demas datos del recibo
... luego se debe imprimir (uno a uno) con el uso de un boton.
... todo era sencillo hasta que la... cifra que ha hecho algo complejo (demorado) el proceso de impresion.
... Que codigo... utilizar, que con un solo clic en un boton, imprima la totalidad de los recibos [...]
... Con que codigo cargo el "nombre de la persona" en la propiedad "Text"... del "ComboBox"
que es la referencia para que los demas datos llenen el recibo?...



si suponemos que con 'solo' poner el nombre de una persona... se actualizan los demas datos del 'recibo' -?-
prueba con un bucle en la macro 'del boto' que...
a) recorra los ~300 registros-nombre...
b) los ponga donde corresponda...
c) mande la impresion del recibo [por cada actualizacion del nombre] ;)

la 'tardanza' del proceso, quedara sujeta a la velocidad/lentitud/... -> de la impersora de salida :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 ElAlumno
05/11/2006 - 23:08 | Informe spam
Hola Héctor Miguel:

Si! efectivamente con solo colocar elnombre de la persona, se
actualizan los demás datos del recibo!

Solo que desconozco el código, que dentro del bucle, debe tomar el
nombre de la base de datos para colocarlo en el "Cuadro combinado" (o
sea, en reemplazo de la selección manuel de la lista).

Si por favor me puedes dar una idea de este código, te agradecería
mucho.

Me parece tambien que hay lugar a colocarle una ayuda retardadora (en
segundos), para ayudarle a la impresora de tal manera que no se
"reviente" al recibir muchas instrucciones de impresión.

Gracias por tu ayuda.

Saludos,

Manuel



si suponemos que con 'solo' poner el nombre de una persona... se actualizan los demas datos del 'recibo' -?-
prueba con un bucle en la macro 'del boto' que...
a) recorra los ~300 registros-nombre...
b) los ponga donde corresponda... ==>>(aquí es mi duda para colocar el nombre en el combo)<<=> c) mande la impresion del recibo [por cada actualizacion del nombre] ;)

la 'tardanza' del proceso, quedara sujeta a la velocidad/lentitud/... -> de la impersora de salida :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
05/11/2006 - 23:43 | Informe spam
hola, Manuel !

... efectivamente con solo colocar elnombre de la persona, se actualizan los demas datos del recibo
... desconozco el codigo, que dentro del bucle, debe tomar el nombre de la base de datos para colocarlo en el "Cuadro combinado"
(o sea, en reemplazo de la seleccion manuel de la lista)... me puedes dar una idea de este codigo...
Me parece tambien que hay lugar a colocarle una ayuda retardadora (en segundos)
para ayudarle a la impresora de tal manera que no se "reviente" al recibir muchas instrucciones de impresion.



[probablemente] podrias 'ahorrarte' el pase de nombres al cuadro combinado y colocarlo 'directamente' en la celda 'apropiada' -?-
-> suponiendo que el listado de nombres esta en la 'hoja1' en la columna 'A' desde la fila 1 hasta la fila 301
y que el nombre se deposita en la celda 'C5' de la hoja activa [desde la que se actualiza el resto del recibo]
y que por cada 25 impresiones necesitas 'darle un respiro' a la impresora de +/- 15 segundos -?-
-> prueba/adapta/ajusta/... el siguiente ejemplo
[nota: el cuadro de mensajes que muestra es de 'auto-respuesta' en el tiempo indicado -15 segundos en el ejemplo-]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Sub Impreson_controlada()
Dim Fila As Integer
With Worksheets("hoja1")
For Fila = 2 To 301
[c5] = .Range("a" & Fila)
ActiveSheet.PrintOut
If Fila Mod 25 = 0 + 1 Then ' el + 1 es porque la cuenta inicia en la fila 2 <= OJO '
CreateObject("WScript.Shell").Popup _
"La impresora se esta tomando un descanso..." & vbCr & _
"Favor de NO cancelar este aviso !!!" & vbCr & _
"Este aviso desaparecera en 15 segundos...", 15, "Mensaje temporal"
End If
Next
End With
End Sub
Respuesta Responder a este mensaje
#4 ElAlumno
06/11/2006 - 05:03 | Informe spam
Hola Héctor Miguel:

Gracias por tu ayuda; paso a comentarte lo siguiente:

El problema es que el nombre no se deposita en ninguna celda de la
hoja; solo queda "mostrada" en la "casilla de la lista desplegable" del
ComboBox; con base en ese nombre se deposita un código, ese si en una
celda, el cual sirve de referencia para llenar todo el recibo. Como
verás el único dato que no está en el recibo es el nombre, queda
superpuesto a la hoja en el ComboBox.

El resto es perfecto; funciona muy bien; solo me queda saber el código
con el que debo vincular cada nombre dentro del bucle al "Text" que
figura en las propiedades del ComboBox (o la forma alternativa de
hacerlo)

Gracias Héctor.

Saludos
Respuesta Responder a este mensaje
#5 Héctor Miguel
06/11/2006 - 05:18 | Informe spam
hola, Manuel !

[probablemente] haciendo cambios 'menores' al codigo propuesto se obtenga lo que buscas...
solo es necesario conocer [+/- exactamente] 'de donde' se toman los datos para rellenar el combobox...
y ['de pasadita']... cual es la celda donde se deposita el indice correspondiente al nombre en la seleccion del combo...
[o cualquier otro dato que consideres podria 'intervenir' en el proceso] :D

saludos,
hector.

__ la consulta original __
El problema es que el nombre no se deposita en ninguna celda de la hoja
solo queda "mostrada" en la "casilla de la lista desplegable" del ComboBox
con base en ese nombre se deposita un codigo, ese si en una celda
el cual sirve de referencia para llenar todo el recibo.
Como veras el unico dato que no esta en el recibo es el nombre
queda superpuesto a la hoja en el ComboBox.
El resto... funciona muy bien; solo me queda saber el codigo con el que debo vincular
cada nombre dentro del bucle al "Text" que figura en las propiedades del ComboBox
(o la forma alternativa de hacerlo)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida