Excel - Explico nuevamente

 
Vista:
sin imagen de perfil

Explico nuevamente

Publicado por ricaurtem (206 intervenciones) el 09/06/2007 14:19:42
Bien a ver si resulta nuevamente la explicacion

Primero que todo esto :Application.ScreenUpdating = False
me sirve a mi para cuando estoy ejecutando la macro y moviendome de hojas no se note que se esta haciendo para el usuario. ademas que hace que las macros se ejecuten mas rapido.

Atendiendo a Jose Luis, mi invento es asi

Tengo 2 hojas, una llamada CHEQUE y la otra CONFECCION

Tengo 4 objetos en la hoja CHEQUE, no uso celdas, sino uso los objetos de cuadro de controles.
DTFECHA
TXTFECHA.
TXTNOMBRE
MKMONTO

y tengo una lista de 5 personas con monto y fecha, en la hoja CONFECCION. asi
NOMBRE, MONTO, FECHA
FULANO, 50 , 08/5/06
MENGANO,100, 9/6/6
SUTANO, 500,13/12/06
KAKUN, 500,13/12/06
MR VACA, 500,13/12/06

por efectos practicos siempre empiezo los datos en la fila 6, en la 5 encabezado.
por eso vez esto Worksheets("CONFECCION").Cells(5 + I, 1))
especificamente 5+i, asi siempre puedo meter botones y titulos arriba

regresando al codigo pusiste de leer la fecha en cada ciclo. en parte tienes razon, la idea original era tener una fecha diferente, pero luego puse un cuadro para tener una sola fecha, y me daba igual si lo leia o no nuevamente.

Entonces algo asi Worksheets("CHEQUE").TXTFECHA.Text = FECHA
significa: que ponga en la hoja CHEQUE en el cuadro de texto TXTFECHA la FECHA (que tomo del dtpicker DTFECHA de la hoja CONFECCION)

Con todo respeto yo no sere un programador profesional (ya que soy ing. civil). pero mis nociones y mi experiencia, aunque no es requisito, se suele utilizar, identificadores par los objetos, TXT para cuadros de texto, CMD para botones de comando, LBL para labels, etc... Y la verdad no me explico como me llamas invento si la verdad es una macro sencillona. Y vaya que te puedo enseñar macros que he hecho para instituciones bancarias y empresas en mi pais.

Entre otras cosas regrresando al tema. espero que alguien me capte.
Trato de imprimir la hoja cheque cada vez que cambio los datos en los cuadro de controles, pero siempre me aparece con los primero datos. que puedo hacer? es un error raro de excel verdad? alguna solucion? puedo enviar el documento para que lo vean.

pongo nuevamente el codigo

Private Sub CMDIMPRIMIR_Click()
Dim NOMBRE As String, FECHA As Date, MONTO As Single
Dim I As Integer

Application.ScreenUpdating = False

For I = 1 To 5
FECHA = CDate(Worksheets("CONFECCION").DTFECHAIMP.Value)
NOMBRE = CStr(Worksheets("CONFECCION").Cells(5 + I, 1))
MONTO = Val(Worksheets("CONFECCION").Cells(5 + I, 2))
Worksheets("CHEQUE").DTFECHA.Value = FECHA
Worksheets("CHEQUE").TXTFECHA.Text = FECHA
Worksheets("CHEQUE").TXTNOMBRE.Text = NOMBRE
Worksheets("CHEQUE").MKMONTO.Text = Val(MONTO)

Worksheets("CHEQUE").PrintOut

DoEvents

Next

'Worksheets("CONFECCION").Select

Worksheets("CHEQUE").DTFECHA.Value = FECHA
Worksheets("CHEQUE").TXTFECHA.Text = FECHA
Worksheets("CHEQUE").TXTNOMBRE.Text = ""
Worksheets("CHEQUE").MKMONTO.Text = 0
Application.ScreenUpdating = True
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Explico nuevamente

Publicado por JuanC (792 intervenciones) el 09/06/2007 15:12:03
te sugiero antes que nada que depures el código para ver qué pasa...
yo hice algo similar y funciona, aunque

Worksheets("CHEQUE").TXTFECHA.Text = FECHA

en mi caso sería así

With Worksheets("CHEQUE")
.OLEObjects("TXTFECHA").Object.Text = FECHA
....
.PrintOut
End With

Saludos desde Baires, JuanC

PD: tampoco soy programador profesional...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Explico nuevamente

Publicado por ricaurtem (206 intervenciones) el 09/06/2007 15:52:37
pero lo hiciste cambiando los datos en los objetos??, dejame probar cmo tu dices.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Explico nuevamente

Publicado por JuanC (792 intervenciones) el 09/06/2007 16:19:37
obviamente, pero en lugar de TextBox usé Label
lo hice para imprimir cientos de datos, con un delay entre
cada impresión para tener tiempo de acomodar el papel...
y también con la opción de cancelar el proceso

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Explico nuevamente

Publicado por ricaurtem (206 intervenciones) el 09/06/2007 18:31:07
bueno ya solucione el problema, tenia que darle ACTIVATE a cada objeto y listo.

ahora bien para Jose luis que me dijo que el DOEVENTS para que servia.

sirve para pasar a otros procesos, por ejemplo si yo no lo tuviera no podria dejar excel y hacer algo mas en la pc, tendria que esprar hasta que termine de hacer lo que tiene que hacer excel
y por lo particular es muy funcional cuando haces un boton de cancelar (que para eso puse el doevents). sin eso no podrias darle click al boton mientras se ejecuta todo lo demas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar