Sobre Formulario

30/06/2006 - 18:12 por Josema | Informe spam
Hola de nuevo, continuo con la pequeña aplicación de Excel y
naturalmente os sigo pidiendo ayuda. Veréis ahora he conseguido hacer un
formulario y consigo llamarlo a la hoja en la que estoy trabajando.
Le he puesto los mismos nombres de los campos de la tabla: Núm.Recibo,
Apellidos y
Nombre, Cantidad, Depositario, Fecha, Hora y Turno.
Lo que quisiera es que lo que escriba en cada uno de esos campos lo
lleve a las celdas del mismo nombre, pero si tengo ya llena la A1, que
comience en la A2. Si estuviera llena la A2, pues tendría que ir a la A3 y
así sucesivamente.
El lugar donde se encuentran cada una de ellas es:

Núm.Recibo,(A2)
Apellidos y Nombre (B2)
Cantidad(C2)
Depositario(D2)
Fecha (E2)
Hora y Turno (F2)
En A1, B1, C1, etc.. es donde están los nombres puestos

A ver si podéis enviarme una ayudita, os lo agradecería.
Un saludo y muchas gracias
Josema

Preguntas similare

Leer las respuestas

#1 klomkbock
30/06/2006 - 19:53 | Informe spam
Hola josema

Para lo que parece que quieres hacer lo mas indicado probablemente es lo
que te comento el otro dia HM, usar el formulario integrado en excel, que
te permite buscar registros y/o añadirlos.

En cualquier caso, y sin tener mucha idea, para rellenar la primera celda
libre de un campo podria valerte algo parecido a esto:

Pej.: para la columna A de la hoja "Hoja":

Worksheets("Hoja").Range("a65536").End(xlup).Offset(1,0).Value = aqui el
control en que introduces los datos.

Tambien te adjunto un procedimiento (posiblemente bastante imperfecto) que
yo uso para hacer lo que tu dices, llenar un registro con controles de un
formulario. Tendrias que cambiar el contenido de la matriz (varLineaNueva)
por los nombres de tus controles y luego...

Private Sub LlenarRegistro(rngLinea As Range, vrtDatosLinea As Variant)
Dim iC As Byte
Application.ScreenUpdating = False
For iC = 0 To rngLinea.Columns.Count - 1
Range("a" & rngLinea.Row).Offset(0, iC) = vrtDatosLinea(iC)
Next
Application.ScreenUpdating = True
End Sub

Private Sub NuevoRegistro()
Dim LineaNueva As Range, varLineaNueva As Variant
With Worksheets("Listado")
.Activate
.Range(.Range("a1"), .Range("k65536").End(xlUp)) _
.Sort key1:=.Range("K1"), header:=xlYes
Application.ScreenUpdating = False
Set rngFinL = .Range("a65536").End(xlUp).Offset(1, 0)
Set LineaNueva = .Range(rngFinL, rngFinL.Offset(0, 11))
varLineaNueva = Array(txtTituloNuevo.Text, txtNombreNuevo _
.Text & " " & txtApellidosNuevo.Text, cmbGeneroNuevo.Text, _
cmbTemaNuevo.Text, cmbPaisNuevo.Text, cmbLoTieneNuevo.Text, _
txtApellidosNuevo.Text, txtObservacionesNuevo.Text, _
txtDejadoANuevo.Text, txtElDiaNuevo.Text, txtNroFichaNuevo.Text, _
txtNombreNuevo.Text)
Call LlenarRegistro(LineaNueva, varLineaNueva)
Application.ScreenUpdating = True
End With
End Sub

Luego dependera de muchos factores como vaya encajado. Puede ir en un
procedimiento de un modulo normal, o en uno del modulo del formulario, y
en cada caso sera diferente. Podra estar asociado al evento click de un
boton de comando u otras muchas variables. Y otras muchas cosas que pueden
influir. Todo depende de lo que quieras hacer. Me temo que en cuanto al
combo de tu otra consulta pase tres cuartos de lo mismo.

Supongo que si explicas un poco mas tus intenciones, lo que llevas hecho
(codigo) y hasta donde quieres llegar sera mas facil ayudarte.

De todas formas si lo que quieres es ir aprendiendo, te recomiendo que te
armes de paciencia y que insistas con la ayuda de VBA y con la lectura de
las respuestas de estos foros. Te lo dice uno que esta en ello.

Disculpa por el sermón, pero solo hablo de lo que yo estoy haciendo.
Espero que algun experto se anime a echarte una mano.

Un saludo y hasta pronto.
Ivan
Respuesta Responder a este mensaje
#2 Josema
30/06/2006 - 20:12 | Informe spam
Gracias por tu respuesta Iván. Efectivamente quiero ir haciendo cosas
poco a poco y he comenzado una pequeña aplicación que cada día quiero ir
mejorando.
Voy a ponerme a hacer esto que me dices. Al principio da un poco de
miedo tanto código, pero ya os iré contando. Una cosa, no he visto la
respuesta de HM, en ocasiones me pasa algo curioso, que a través del
Outllok, que es como leo estos grupos, pierdo algunos participantes y si
entro por la página los veo. Se que os resultará raro, pero es así.
Por lo que respecta al Combo, mira, sería lo siguiente: Supongamos que
en una columna (solo por aprender, pero para utilizarlo luego en la
aplicación que te digo) he seleccionado para el combo un rango en las celdas
comprendidas entre A1:A5, con los números 1,2,3,4,5 y he ido a Datos,
Validación de Datos, en Permitir, he seleccionado Lista y en Origen, el
rango siguiente: =$A:$A. Comentaros que seleccioné toda la columna A.
Pues bien ahora me aparece en cada una de las celdas de la columna A, el
combo con los valores 1,2,3,4,5. Pero ¿cómo puedo meter por ejemplo el valor
6 en una celda si tuviera la necesidad? Eso es lo que quisiera resolver. Por
qué aunque siempre trabajáramos con esos cinco números o 5 nombres de
personas, etc... siempre nos puede surgir el añadir uno más.
Bueno espero no haberme enrollado demasiado.
Muchas gracias y un saludo Iván
Josema
Respuesta Responder a este mensaje
#3 klomkbock
30/06/2006 - 20:58 | Informe spam
Hola Josema, no se si esta respuesta sera doble pues antes se me ha liado
este trasto.
Por si acaso aqui va otra vez.

http://groups.google.com/group/micr...8a5a?hl=es

Si no me equivoco esta es la direccion de la respuesta de la que te hable
antes. Si no la encuentras busca en los grupos de google
:(groups.google.com/group/microsoft.public.es.excel)

En cuanto al combo, la verdad es que no tengo ni idea de controles en hoja
ni de validacion, pero para pasar el contenido del combo a una celda
supongo que te valdria con algo parecido a la respuesta anterior.

Espero te sirva de algo.
Un saludo y hasta pronto.
Ivan


Josema wrote:

Gracias por tu respuesta Iván. Efectivamente quiero ir haciendo cosas
poco a poco y he comenzado una pequeña aplicación que cada día quiero ir
mejorando.
Voy a ponerme a hacer esto que me dices. Al principio da un poco de
miedo tanto código, pero ya os iré contando. Una cosa, no he visto la
respuesta de HM, en ocasiones me pasa algo curioso, que a través del
Outllok, que es como leo estos grupos, pierdo algunos participantes y si
entro por la página los veo. Se que os resultará raro, pero es así.
Por lo que respecta al Combo, mira, sería lo siguiente: Supongamos que
en una columna (solo por aprender, pero para utilizarlo luego en la
aplicación que te digo) he seleccionado para el combo un rango en las celdas
comprendidas entre A1:A5, con los números 1,2,3,4,5 y he ido a Datos,
Validación de Datos, en Permitir, he seleccionado Lista y en Origen, el
rango siguiente: =$A:$A. Comentaros que seleccioné toda la columna A.
Pues bien ahora me aparece en cada una de las celdas de la columna A, el
combo con los valores 1,2,3,4,5. Pero ¿cómo puedo meter por ejemplo el valor
6 en una celda si tuviera la necesidad? Eso es lo que quisiera resolver. Por
qué aunque siempre trabajáramos con esos cinco números o 5 nombres de
personas, etc... siempre nos puede surgir el añadir uno más.
Bueno espero no haberme enrollado demasiado.
Muchas gracias y un saludo Iván
Josema
Respuesta Responder a este mensaje
#4 Josema
30/06/2006 - 21:11 | Informe spam
Gracias Iván, ya van saliendo algunas cosas, entre todos es más sencillo.
Un saludo
Josema
Respuesta Responder a este mensaje
#5 klomkbock
30/06/2006 - 21:35 | Informe spam
Hola Josema

PD: si estas probando el codigo que te mande antes y no quieres que te
ordene el rango (no me he dado cuenta de quitarlo yo), elimina la
instruccion .Activate y la que va inmediatamente detras (que usa .Short),
y si quieres que te ordene por algun cmpo concreto cambia ("K1") por una
celda de la columna de ordenacion. Tambien (posiblemente) puedes quitar la
propiedad Text de los controles de la matriz. Por cierto este
procedimiento tendrias que ponerlo en el modulo del formulario donde esten
los controles, si no, deberias especificar el formulario en que se
encuentran (pej: With Formulario1 .TextBox1, TextBox2,)


un saludo
ivan

Josema wrote:

Gracias Iván, ya van saliendo algunas cosas, entre todos es más sencillo.
Un saludo
Josema
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida