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
 

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.

Preguntas similares