Buenas tardes a todos.
He hecho un formulario con diferentes campos a completar manualmente, excepto uno, el campo "descripción" que necesito que se autocomplete al introducir
un nº determinado en el campo anterior "cod barras producto". En la hoja 1 está el formulario y en la hoja 2 la base de datos de la cual se tiene que alimentar (buscarv) para que vuelque la descripción.
Lo he intentado de dos maneras:
1) Intentado crear un evento para que cada vez que introduzca el nº "cod de barras producto", aparezca la descripción.
2) Insertando un botón con la función equivalente del buscarv.
En ambos casos sin éxito.
Espero haberme explicado bien y gracias por la ayuda de antemano.
Adjunto formulario.
Un saludo
Rubén
Adjunto | Tamaño |
---|---|
copia_de_prueba_cb.1.xlsm | 26.23 KB |
Hola Ruben:
Prueba esto en el boton de buscar de tu formulario
Dim Fila As Integer
Fila = Hoja1.Range("A:A").Find(codbarrasproducto.Value).Row
descripción.Value = Hoja1.Range("B" & Fila).Value
Pruebalo y nos comentas si te funciona o te hace falta algo mas
Un saludo
FernandoML
Espero te sirva
Un Saludo
Fernando
Gracias Fernando. Me ha funcionado a la perfección.
Para entenderlo bien. Has creado una variable que la tiene que encontrar en la hoja 1con el valor "codbarrasproducto".
Pero lo que no entiendo es que no le indicas la hoja 2 y en cambio sí que lo busca el dato "descripción".
Le vay a dar más vueltas porque quiero entenderlo.
Un saludo y gracias de nuevo
Rubén
Hola de nuevo Ruben:
Te explico:
Dim Fila As Integer
Fila es la variable que uso para obtener en que fila se encuentra el dato que estamos buscando en nuestro caso el código de barras.
Fila = Hoja1.Range("A:A").Find(codbarrasproducto.Value).Row
Cuando abrimos el proyecto de macros, veremos en la parte superior izquierda:
Hoja1 (Datos herramientas)
Hoja3 (Formulario)
En este caso en concreto nuestras hojas se llaman (Datos herramientas y Formulario) que son las que figuran entre parentesis. Si un usuario cambiase el nombre de cualquiera de las hojas, el programa que estamos diseñando pordría dejar de funcionar mientras usemos la siguiente instrucción (sheets("Datos herramientas")). Si usamos el nombre que figura a la izquierda (Hoja1) el codigo o el programa no te fallarán aunque le cambien el nombre a todas las hojas.
Hace la misma función de la siguiente manera
1ª: Fila = Sheets("Datos personales").Range("A:A").Find(codbarrasproducto.Value).Row
2ª: Fila = Hoja1.Range("A:A").Find(codbarrasproducto.Value).Row
Espero haberte aclarado las dudas.
Un saludo
Fernando
Espero te sirva
Un Saludo
Fernando
Entendido. Todo.
Muchas gracias Fernando
Un saludo
Rubén