Userform para ingresar datos a una base EXCEL.

Cree unas USERFORM pero no se como darle comandos para activarlas, la finalidad es para ingresar productos a una planilla BASE. Los datos que ingrese en las userform se deben insertar en la hoja base de excel con un botón que dise grabar nota...
Ya que la planilla es un poco enredada necesito enviarla a la persona que me ayude.
De ante mano.

1 respuesta

Respuesta
2
Voy a darte el primer empujón:
En primer lugar create un botón (commandbutton1) e insértale el siguiente código:
Private sub commanbutton1_click()
userform1.show 'estas 3 lineas son para que se muestre el form que has hecho tu
end sub
Suponiendo que queremos empezar a meter datos en A2 de la hoja1, puesto que la primera fila es donde tenemos la cabecera (nombre, datos1, datos2, etc) y que tenemos un userform con 5 textbox para introducir datos y un botón en el form para guardar, escribimos el siguiente código en el botón guardar:
Private Sub CommandButton1_Click()
Sheets("hoja1").Select 'selecciona la hoja "datos"
Range("A1").Select 'selecciona el rango (en este caso la celda) "A1"
Do While Not IsEmpty(ActiveCell) 'encuentra la ultima celda con datos
ActiveCell.Offset(1, 0).Select 'en la ultima celda con datos, muevete una fila abajo
Loop 'bucle
ActiveCell = TextBox1 'copia el contenido del textbox1 a la celda activa
ActiveCell.Offset(0, 1).Select 'muevete en la misma fila, una columna a la derecha
ActiveCell = TextBox2 'copia el contenido del textbox2 a la celda activa
ActiveCell.Offset(0, 1).Select
ActiveCell = TextBox3
ActiveCell.Offset(0, 1).Select
ActiveCell = TextBox4
ActiveCell.Offset(0, 1).Select
ActiveCell = TextBox5
ActiveCell.Offset(0, 1).Select
TextBox1 = Empty 'textbox1, dejar en blanco
TextBox2 = Empty 'etc
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
MsgBox "Datos guardados" 'mostrar el mensaje "Datos guardados"
End Sub
Todo esto suponiendo que el form se llama "userform1", el botón "commandbutton1, y los textbox1, 2,3 etc.
Acomoda esto a tu hoja y seguimos viendo a ver que tal.
Estimado, muchas gracias por la ayuda me ha servido todo...
Pero aun tengo que seguir modificando... tengo 2 consultas, la primera:
Tengo en la celda a1 (Local) en la celda b1 (producto) y en la c1 (cantidad) [estos serian los nombres de cabezera] al ingresar los datos en el UserForm ingreso solo una vez el local y varios productos con sus respectivas cantidades.
[Local][Producto][Cantidad]
[5251][1010002][        200]
[        ][1010078][        150]
[        ][1010096][        100]
ETC...
Lo que necesito es que al presionar el botón grabar se auto-complete hacia abajo hasta donde llegan las otras cantidades.
La segunda es:
Al momento de ingesar un código manual de producto en un TextBox necesito que en un Label (no se si sera ese) me de una denominación como la fórmula Buscar. Ejemplo.
[Producto][Denominación]
[1010002][Pollo con men]
Estimado, quedo atento... y Gracias por la ayuda!
Atentamente.
Patricio Espinosa.
Podrías jugar con el código:
ActiveCell.Offset(0, 1).Select
Que sirve para moverte por las celdas de excel, el anterior código quiere decir que en la misma fila, se mueva una columna hacia la derecha, es decir, si la última celda seleccionada fue A6, ahora le hemos dicho que se sitúe en A7 y después:
ActiveCell = TextBox1
es decir, que en la celda activa copie el contenido del textbox1.
Pues básicamente sería lo mismo, pero moviéndote fila arriba o abajo. Ejemplos:
activecell.offset(1, 0).select
significa que se mueva una fila abajo en la misma columna
ActiveCell.Offset(1, 1).Select
significa que se mueva una fila abajo y una columna a la derecha
ActiveCell.Offset(0, -1).Select
Significa que se mueva una columna a la izquierda
etc.
Acopla esto a tu proyecto y en cuanto pueda te comento lo de buscar la denominación del producto según referencia.
Estimado... la primera solución no me ha servido. Tienes alguna otra solución.
Esperando tu ayuda, muchas gracias.
Atentamente.
Patricio Espinosa.
Cuando dices la primera solución, ¿te refieres a mi primera respuesta? Es que me dijiste que te sirvió todo.
¿Por qué no te funcionó? ¿Te dio algún error? Creo que con la función offset puedes solucionar tu problema, ¿no?
Deberías especificar un poquito más para poder ayudarte.
Si quieres mandame tu proyecto a mi correo y veo el porqué no te sirve y veo si te puedo dar alguna otra solución.
MI correo dannnymm[arroba]ono[punto]com
Estimado... acabo de enviar la planilla al correo mencionado.
Esperando me puedas ayudar, muchas gracias.
Atentamente.
Patricio Espinosa.
PD: La primera respuesta estuvo todo excelente. Me manie con la respuesta de como auto-completar.
Te respondí a tu correo.
Te he vuelto a mandar otra vez tu excel modificada para que guarde los datos como tu quieres, echale un vistazo y me dices algo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas