userform que se repita

15/06/2007 - 04:38 por alexandra | Informe spam
hola, espero puedan ayudarme con lo siguiente:
estoy haciendo una poliza de cheques, donde puse un userform para que se
vayan rellenando los espacios, y una vez que quede llena, se mueva hacia
abajo y de paso a otro formato igual con el mismo userform. La forma que
encontré de hacer lo anterior es:

Private Sub llenar_Click()

fecha = Empty
nombre = Empty
cant = Empty
concepto = Empty
factura = Empty
cheque = Empty
folio = Empty
tarjeta = Empty
Range("a1").Select
fecha.SetFocus

Range("A1:G18").Select
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.Insert Shift:=xlDown
Range("H19").Select
ActiveWindow.SmallScroll Down:


End Sub


Private Sub fecha_Change()
Range("f2").Select
With Selection
Selection.NumberFormat = "dd/mm/yy;@"
ActiveCell.FormulaR1C1 = fecha
End With
End Sub
Private Sub nombre_Change()
Range("b4").Select

ActiveCell.FormulaR1C1 = nombre
End Sub

Private Sub cant_Change()
Range("f4").Select
With Selection
Selection.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($*
""-""??_);_(@_)"
End With

ActiveCell.FormulaR1C1 = cant

End Sub




Private Sub cantidad_Change()
Range("b5").Select

ActiveCell.FormulaR1C1 = cantidad
End Sub

Private Sub cheque_Change()
Range("g15").Select
ActiveCell.FormulaR1C1 = cheque

End Sub

Private Sub concepto_Change()
Range("a7").Select
ActiveCell.FormulaR1C1 = concepto

End Sub

Private Sub factura_Change()
Range("b16").Select
ActiveCell.FormulaR1C1 = factura


End Sub

Private Sub folio_Change()
Range("G16").Select
ActiveCell.FormulaR1C1 = folio


End Sub

Private Sub tarjeta_Change()
Range("G17").Select
ActiveCell.FormulaR1C1 = tarjeta

End Sub

1.-ahora el problema que tengo es que por algún motivo, en cuanto pulso el
boton de comando (llenar) borra todo el contenido y no se como hacer para que
este quede escrito en la hoja de cálculo.

2.-quisiera saber como agregarle algún código que al mismo tiempo que copia
el formato me inserte un salto de pagina, para que cada formatito de poliza
quede independiente en una página

3.-como puedo hacer para que el userform no aparezca a la mitad de la hoja,
sino por un lado

tengo este formato en http://lzcorp.no-ip.com/~alexandra/ el archivo
llamado poliza

les agradecería mucho su ayuda lo más pronto posible

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/06/2007 - 04:04 | Informe spam
hola, alexandra !

hola, espero puedan ayudarme con lo siguiente:
estoy haciendo una poliza de cheques, donde puse un userform para que se vayan rellenando los espacios
y una vez que quede llena, se mueva hacia abajo y de paso a otro formato igual con el mismo userform.
La forma que encontre de hacer lo anterior es:

Private Sub llenar_Click()
fecha = Empty
nombre = Empty
cant = Empty
concepto = Empty
factura = Empty
cheque = Empty
folio = Empty
tarjeta = Empty
Range("a1").Select
fecha.SetFocus
[ mas codigo ]
Private Sub fecha_Change()

Private Sub nombre_Change()

Private Sub cant_Change()
[etc. etc. etc.]
1 ... el problema que tengo es que por algun motivo, en cuanto pulso el boton de comando (llenar)
borra todo el contenido y no se como hacer para que este quede escrito en la hoja de calculo



1) [segun parece] el *detalle* es que tienes codigo en el evento '_change' [pero]...
DE TODOS los controles que estas *vaciando* al pulsar el boton de llenar
y este evento esta *depositando* lo que acabas de poner en cada control... o sea: -> Empty :-((

2 ... como agregarle algun codigo que al mismo tiempo que copia el formato me inserte un salto de pagina
para que cada formatito de poliza quede independiente en una pagina



2) si *eliminas* las instrucciones con los *Empty* de tu codigo, los eventos haran *el pase* de sus contenidos a *sus celdas*
para insertar un salto de pagina [usando la celda donde el codigo este *posicionado*] prueba con algo +/- como:
activesheet.hpagebreaks.add activecell

3 ... hacer... que el userform no aparezca a la mitad de la hoja, sino por un lado



3) puedes combinar algunas propiedades del userform, p.e. mostrarlo en la esquina superior izquierda...
en el modulo de codigo del formulario ==Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 0
Me.Top = 0
End Sub

si necesitas que se muestre en una posicion 'relativa' a alguna celda en especifico...
en realidad... existe una 'buena cantidad' de [otras] variables que intervienen en la 'posicion' REAL del formulario...
[barras de comandos/herramientas 'mostradas', el tama#o de la ventana de la aplicacion, etc. etc. etc.] :-((
visita... http://www.cpearson.com/excel/FormPosition.htm

saludos,
hector.
Respuesta Responder a este mensaje
#2 alexandra
17/06/2007 - 00:03 | Informe spam
"Héctor Miguel" escribió:

hola, alexandra !

> hola, espero puedan ayudarme con lo siguiente:
> estoy haciendo una poliza de cheques, donde puse un userform para que se vayan rellenando los espacios


1) [segun parece] el *detalle* es que tienes codigo en el evento '_change' [pero]...




muchas gracias como siempre por tu respuesta, me ha servido mucho. ahoara
tengo otra duda, (raro en mi no?) jeje

1.-como puedo hacer para poner un formato a una celda (color, contabilidad,
fecha, etc) lo traté de hacer poniendo directamente el formato a la celda en
la hoja, pero no lo respeta a la hora que el userform lo traslada, así que
supongo que debe ponerse directamente en los códigos del userform, solo que
no se como.
2.-como hago para que la hoja de exel quede bloqueada, es decir, que solo se
pueda escribir en ella através del userform
3.-hay algún lugar donde esté una lista de los códigos, como se usan y para
que son?
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/06/2007 - 08:27 | Informe spam
hola, alexandra !

1.-como puedo hacer para poner un formato a una celda (color, contabilidad, fecha, etc)
lo trate de hacer poniendo directamente el formato a la celda en la hoja, pero no lo respeta a la hora que el userform lo traslada
asi que supongo que debe ponerse directamente en los codigos del userform, solo que no se como.



si te refieres [p.e.] a datos-fecha que se *trasladan* desde controles de texto en formularios...
seria bueno si expones [+/- exactamente] como queda o modificas el contenido de dicho/s textbox/es
[las fechas en vba tienen su manejo *especial*, sobre todo cuando intervienen entradas del usuario en textboxes]

2.-como hago para que la hoja de exel quede bloqueada, es decir, que solo se pueda escribir en ella atraves del userform



mantener la hoja protegida ?... oculta ?... restringirle el movimiento al usuario ?
si puedes comentar detalles mas 'concretos' -?-

3.-hay algun lugar donde este una lista de los codigos, como se usan y para que son?



no creo que exista un *unico* lugar/sitio/articulo/manual/libro/... donde puedas consultar una *lista de codigos*...
y que te indique ademas [y probablemente *al detalle*] como se usan y para que son :-(( [generalmente]...
-> la ayuda en linea te puede guiar *paso a paso* [y segun lo que le preguntes, aunque contiene -casi- todo y con ejemplos]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 alexandra
18/06/2007 - 23:26 | Informe spam
"Héctor Miguel" escribió:


si te refieres [p.e.] a datos-fecha que se *trasladan* desde controles de texto en formularios...
seria bueno si expones [+/- exactamente] como queda o modificas el contenido de dicho/s textbox/es
[las fechas en vba tienen su manejo *especial*, sobre todo cuando intervienen entradas del usuario en textboxes]



1- aclaro, si en el text box pongo 1/5/7 y quiero que lo traslade a la hoja
de calculo como 01/05/07, lo mismo si pongo 10/5/7 traslada 10/06/07 etc

> 2.-como hago para que la hoja de exel quede bloqueada, es decir, que solo se pueda escribir en ella atraves del userform

mantener la hoja protegida ?... oculta ?... restringirle el movimiento al usuario ?
si puedes comentar detalles mas 'concretos' -?-



2.- si cierro el userform, el usuario no puede cambiar los datos trasladados
a la hoja de calculo, puede seleccionar e imprimir unicamente


y bueno =) nueva pregunta 3.- como puedo hacer que un textbox pueda tener
varios renglones, es decir poder escribir, pago a javier (enter/sig.
renglon) pago a lupe (enter) pago a juan, etc. y no que todo se escriba en
una sola línea

como siempre gracias por tus respuestas
Respuesta Responder a este mensaje
#5 Héctor Miguel
19/06/2007 - 01:31 | Informe spam
hola, alexandra !

1... si en el text box pongo 1/5/7... quiero que lo traslade a la hoja de calculo como 01/05/07, lo mismo si pongo 10/5/7... etc.



p.e. ActiveCell = CDate(TextBox1)
o... ActiveCell = CLng(CDaet(TextoBox1))

2 si cierro el userform, el usuario no puede cambiar los datos trasladados a la hoja de calculo, puede seleccionar e imprimir unicamente



prueba a mantener tu hoja protegida sin que afecte a tus codigos la administracion de su contenido [p.e.]
en el modulo de tu libro [ThisWorkbook] copia/pega lo siguiente [ajusta al nombre real de tu hoja]

Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

3 como puedo hacer que un textbox pueda tener varios renglones
es decir poder escribir, pago a javier (enter/sig. renglon) pago a lupe (enter) pago a juan, etc.
y no que todo se escriba en una sola linea



estableciendo su propiedad 'MultiLine' en True [opcionalmente puedes mostrar sus 'ScrollBars'
y seria necesario combinar {ctrl}+{enter} si quieres 'forzar' la siguiente linea [o manejar los eventos '_key...' del textbox]

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida