Evitar escribir datos de clientes

Estimado amigo:
Estoy realizando en Excel un modelo de factura para una pequeña empresa. Lo básico ya lo tengo hecho pero hay algo que se me ha "atragantado". Me gustaría archivar los datos de mis clientes (Nombre, dirección, localidad, CIF, etc.), y que cada vez que me ponga a hacer una factura pulse en algún sitio de tal modo que pueda escoger el cliente al que facturo y automáticamente me aparezcan en la factura todos sus datos. ¿Es posible hacerlo? ¿Sabrías decirme cómo?
Agradeciendo de antemano tu atención y esperando tu respuesta, se despide atentamente.,
José Eladio.
Respuesta
1
Joseladio,
hay varias formas de resolver esto: con una hoja de diálogo, con un formulario con un cuadro de lista, con un descolgable aplicado sobre la hoja de cálculo, y probablemente pueda haber otra.
La hoja de diálogo requeriría que vayas a otra hoja de Excel a buscar a tus clientes para luego pasar a la factura. Por eso tal vez no se muy buena opción.
Un formulario VisulaBasic necesitaría de un botón sobre la planilla para ser invocado, y luego con doble clic sobre un cliente dentro de un cuadro de lista se transferirían los datos a la planilla. Esta es una muy buena opción, pero requiere conocimientos de Visual basic que probablemente no tengas.
La tercer opción me parece la mejor para empezar, y además es muy buena.
En forma simple el procedimiento es así:
- En una hoja de datos cargamos a todos los clientes con sus datos. La primer columna de esta lista debe ser un código de cliente único para cada uno (utilizamos números 1, 2, 3 etc)
- Ahora en la hoja de la factura elegimos VER luego BARRAS DE HERRAMIENTAS y luego VISUAL BASIC
- Mientras realicemos el diseño tiene que esta apretado el botón de la escuadra el lápiz y la regla, solo para probar hay que liberarlo
- Apretamos el botón del martillo y la llave para que aparezca la ventana de controles
- En esta ventana, clic en el botón "cuadro combinado" (combo) y luego lo dibujamos grande sobre la hoja de cálculo (en un lugar libre de la factura)
- Con el combo seleccionado tocamos el botón "propiedades" (la manito que señala la lista) que está en la ventana de controles, y aparece entonces la lista de propiedades del combo
- Buscamos la propiedad "ListFillRange" y a la derecha cargamos la dirección del rango de los clientes. Por ahora solo los datos de código de cliente. Por ejemplo escribimo HOJA2! A2:A102
esta dirección puede variar según donde estén los datos y la cantidad de ellos, en el ejemplo serían 100 clientes cuyos códigos van de A2 hacia abajo
- Ya se puede probar la lista. Liberamos el botón de diseño y cuando desplegamos la lista deben aparecer todos los códigos de clientes. Ahora volvemos a diseño
- Ahora hacemos un doble clic sobre el combo y aparecerá la ventana para redactar código Visual basic
- Aparecerá ya escrito este código:
Private Sub ComboBox1_Change()
End Sub
- Entre estas 2 líneas vamos a escribir las instrucciones que se ejecutarán cada vez que se elija un código de cliente en el combo. Escribimos esto:
Cliente = Val(ComboBox1.Value)
Dato = Application.VLookup(Cliente, Sheets("HOJA2").Range("A2:Z100"), 2, False)
Range("B3") = Dato
Dato = Application.VLookup(Cliente, Sheets("HOJA2").Range("A2:Z100"), 3, False)
Range("B4") = Dato
Dato = Application.VLookup(Cliente, Sheets("HOJA2").Range("A2:Z100"), 4, False)
Range("B5") = Dato
- Observa que los número 2, 3 y 4 son el número de la columna que se quiere recuperar y B3, B4 y B5 son las celdas a donde van a parar estos datos
- Ahora se puede probar
Espero tengas suerte en tu diseño, y que modifiques el ejemplo.
Luego de haber escrito el código la primera vez, la manera de acceder al mismo es a través de HERRAMIENTAS luego MACRO y luego EDITOR DE VISUAL BASIC
Si tenés alguna duda me podes consultar
Foxeles
Muchísimas gracias por tu colaboración. Me has dado todo tipo de detalles en tu respuesta y es de agradecer. Voy a ponerme "manos a la obra" y con lo bien que te has explicado no creo tener problemas. Gracias de nuevo por dedicar parte de tu tiempo a mi pregunta.
Un saludo y ¡Feliz Navidad!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas