GESTIÓN DE CLIENTES CON EXCEL

Hace unos días subí un post titulado “GESTIÓN DE CLIENTES CON FORMULARIOS EN EXCEL” y comentaba la utilidad que puede llegar a tener Excel para trabajar con bases de datos y las posibilidades que nos pueden ofrecer los formularios para confeccionar un pequeño programa para llevar la gestión, por ejemplo, de clientes.

Pues bien, ya he finalizado esta pequeña aplicación y hoy la voy a subir para que todos tengáis acceso a ella. No se trata tanto de hacer un programa cerrado y protegido sino todo lo contrario, quiero dar oportunidad de que lo podáis explorar, de que podáis ver cómo he hecho algunas cosas y de que tengáis la oportunidad de modificarlo e incluso mejorarlo.

Siempre he creído que es mucho más interesante para todos el poder ver cómo se hacen las cosas y no poner barreras al conocimiento.

El programa está diseñado y probado en las versiones de Excel 2003, 2007, 2010, 2013 y 2016 y funciona perfectamente. No he tenido ocasión de probarlo en 2013 (así que si alguno de vosotros lo puede hacer y verificar que todo se ejecuta correctamente estaría muy agradecido).

El programa no es muy extenso, pero explicar aquí toda la programación sería prácticamente imposible, lo que voy a hacer es mostrar todas las pantallas e indicar para que sirve cada una de ellas:

Pantalla de inicio:

GESTION CLIENTES_1

En esta primera pantalla podemos ver las diferentes opciones que nos va a permitir realizar nuestro programa. Vamos a poder dar de alta un nuevo cliente, consultar los datos introducidos y modificarlos, dar de baja al cliente, borrar por completo la base de datos y consultar la relación de clientes existente en cada momento así como exportar estos datos a un nuevo libro.

NUEVO CLIENTE:

GESTION CLIENTES_2

Esta es la pantalla que vamos a utilizar para dar de alta un cliente nuevo, debemos tener en cuenta que la aplicación está diseñada para dar de alta tanto a empresas como a personas, por lo que vamos a distinguir en todo momento a clientes con personalidad jurídica  (empresas) y clientes con personalidad física (personas).

Una vez que marquemos la distinción solo tenemos que ir introduciendo los datos requeridos, en caso de que alguno de los campos quede vacío el sistema nos avisará para que procedamos a completarlo, existen controles en los diferentes campos para ayudar a que la información sea la correcta, por por ejemplo en el tipo de documento, que en caso de ser DNI, NIE o CIF la longitud máxima de caracteres será de 9 posiciones o que por ejemplo una persona no puede tener asignado un CIF (que es el documento de identificación de una empresa).

Además he dejado un campo de anotaciones de 250 caracteres que seguro resulta muy útil para tomar notas sobre el cliente (preferencias, datos importantes, etc…).

Una vez que pulsemos “GRABAR DATOS” la información será grabada definitivamente en la aplicación. En ese momento saltará un mensaje diciendo que los datos se han grabado correctamente y el sistema asignará un número único y permanente al cliente:

GESTION CLIENTES_3

De esta forma tendremos un nuevo cliente dado de alta en nuestra base de datos. Pero imaginad que hemos cometido un error en los datos introducidos o simplemente tenemos que actualizar una dirección, entonces debemos ir a la siguiente pantalla:

CONSULTAR Y MODIFICAR DATOS:

Tal y como dice esta pantalla, aquí podremos consultar la información de un cliente y en caso de ser necesario modificarla:

GESTION CLIENTES_4

Para consultar los datos primero se debe buscar al cliente, aquí lo he puesto bastante fácil, basta con que pongas o bien el documento de identidad o bien el nombre completo o bien el número de empleado y si el cliente existe, el sistema lo mostrará.

Los datos que se muestran al principio son solo de consulta, no se pueden modificar, para hacerlo debes pulsar en botón “MODIFICAR” justo debajo del botón “BUSCAR” y en ese momento se informará que los datos ya se pueden editar. No se pueden modificar el número de cliente, la fecha de alta, el estado del cliente o la fecha de baja.

El estado del cliente es para distinguir entre clientes activos o inactivos y las fechas de alta y baja son datos informativos que el sistema graba automáticamente, no se permite su modificación.

Para grabar los datos, debemos pulsar en “CONFIRMAR DATOS“. Siempre que exista una pantalla donde vamos a modificar la información, después de pulsar confirmar, aparecerá una segunda ventana pidiendo confirmación:

GESTION CLIENTES_5

Es importante,  porque de esta forma siempre tenemos una segunda oportunidad antes de confirmar los datos introducidos.

En toda base de datos de clientes debemos tener presente que se pueden producir bajas y que también después de un tiempo esos clientes que se han ido pueden volver, para gestionar todo esto debemos acceder a siguiente pantalla:

BAJA CLIENTE:

GESTION CLIENTES_6

Para dar de baja a un cliente es necesario realizar su búsqueda, una vez que introducimos los criterios y pulsamos buscar se mostrarán los datos identificativos. Si todo es conforme, pulsaremos en “TRAMITAR BAJA” en ese momento, el sistema asigna al estado del cliente el indicativo de “cliente inactivo” y grabará la fecha actual como fecha de baja. No se procede a eliminar el cliente de la base de datos, sino a codificarlo como inactivo.

En caso de habernos equivocado o que pasado un tiempo podamos volver a dar de alta al cliente, debemos pulsar “REACTIVAR ALTA“. En ese momento el cliente pasará a ser “cliente activo” y la fecha de alta será la del día actual. Además el sistema graba internamente las veces que un cliente ha sido reactivado, este dato lo podéis ver una vez que exportéis la base de datos.

Puede que deseemos volver a hacer una nueva base de datos, para ello he habilitado la opción de borrar toda la información del sistema, si pulsamos en la pantalla de inicio en el botón: “BORRAR BASE DE DATOS” aparecerá el siguiente mensaje:

GESTION CLIENTES_7

La clave a introducir es “123” y una vez que pulsemos “ACEPTAR” se borrará toda la base de datos. Debéis estar seguros de querer realizar este paso, porque luego no hay marcha atrás.

Si deseamos ver toda la base de clientes y exportar los datos a un nuevo libro para tratar la información, debemos ir a la pantalla de inicio y pulsar en el botón “RELACIÓN CLIENTES” y aparecerá un listbox con toda información de clientes:

GESTION CLIENTES_8

Si queremos extraer la información a un nuevo libro debemos pulsar el botón “EXPORTAR DATOS” y toda la base de datos se grabará en un nuevo libro, donde podremos tratar la información para confeccionar nuestros propios informes o trabajos.

Y hasta aquí es la explicación de cómo funciona cada una de las pantallas de esta aplicación, en principio todos los comandos funcionan correctamente y los errores que he podido encontrar los he corregido, no obstante si veis que algo no funciona os agradecería que me lo dijeseis para proceder a solucionarlo.

La clave utilizada en todo momento es “123” (sin comillas).

Para terminar, la aplicación utiliza dos hojas para poder funcionar:

– Hoja2 (“COMBOS”) donde está la información con la que se cargan los combobox de los fomularios.
– Hoja3 (“DATOS”) donde se graban todos los datos de los clientes.

GESTION CLIENTES_9

SI MODIFICÁIS EL NOMBRE DE ESTAS HOJAS la aplicación no funcionará. Pero podéis modificar el contenido de los combo box, por ejemplo en las provincias, en caso de estar en otro país, etc. o en la hoja datos, si tenéis vuestra propia base de clientes podéis exportar los datos de forma masiva y no tener así que ir grabando a cada cliente de uno en uno.

No he introducido código para el control de errores y lo he hecho para que si algo no funciona nos lo notifique y saber así que algo no marcha bien y en que parte del programa sucede. Ahora solo tenéis que probarlo, curiosear con la programación y ponerlo en práctica.

Descarga el archivo pulsando enGESTION DE CLIENTES

*  Teniendo en cuenta el alto número de peticiones para que el programa pueda dar de alta un cliente sin necesidad de que sea obligatorio introducir los datos de direcciones y teléfonos. Y por otra parte, implementar el buscador por nombres, de forma que se pueda buscar sin necesidad de introducir el nombre y apellidos completo: en este enlace podéis descargar otra versión sin estas condiciones y con el buscador: Enlace GESTION DE CLIENTES versión.1

 

Anuncios

92 pensamientos en “GESTIÓN DE CLIENTES CON EXCEL

  1. Hola, el programa funciona perfectamente, estoy trabajando con excell 2011 en mac, pero quería saber si se pueden modificar los campos, ya que para lo que yo lo voy a utilizar, me sobran muchos y faltan otros.
    También comentarte que a mi solo me aparece una hoja que se llama clientes y tiene un candado.

    Gracias.

    Me gusta

    • Hola Laur;

      Si pulsas con el botón derecho del ratón en la pestaña de la hoja “clientes” te aparecerá la posibilidad de mostrar hojas. Hay dos hojas ocultas que se llaman “Datos” donde se graban todos los clientes y las modificaciones y otra que se llama “combos” que es donde están todos los items que se cargan en los combobox de los formularios. En resumen, que las pestañas que no ves es porque están ocultas, solo tienes que mostrarlas.

      Todo el programa se puede modificar, si agregas nuevos textbox o combos deberás modificar la programación (por eso lo he dejado totalmente abierto y sin contraseñas).

      Echa un vistazo y en caso de dudas, me comentas.

      Muchas gracias!! Y un saludo.

      Me gusta

      • Buenas tardes. La verdad es que me viene de perlas esta excel, pero me gustaria personalizarla un poco, quitando algunos campos que no necesito y añadiendo otros (el portal en la direccion o el numero de cuenta) ¿Me podrias dar una pequeña referencia de donde tengo que cambiar esta informacion? No veo por ningun sitio en la excel como sacar la parogramacion apra poder modificarlo.
        Muchisimas gracias por al ayuda, recibe un cordial saludo

        Me gusta

  2. Hola Jorge,

    Lo ideal para que puedas modificar el formulario es que examines detenidamente el código y a qué hace referencia. Para acceder a la programación basta con abrir el programador VBA, visualizar todos los formularios e ir pulsando en cada uno de ellos (doble clic) para poder acceder a la programación.

    Es un trabajo meticuloso y antes de ponerte, lo mejor es que vayas examinando el código, viendo las referencias de cada instrucción y luego modificar, eliminar o añadir nuevos textbox, combos, etc.

    Saludos y me alegro que te sea de utilidad!!!

    Me gusta

  3. Hola Carlos,

    Efectivamente, la aplicación no está programada para importar datos desde un archivo Excel. La idea es ir introduciendo todos los datos a través de la validación de los datos del programa, hacerlo mediante una hoja o archivo implica trabajar adicionalmente en la validación de datos previa y luego programar la importación (añadiendo nuevos datos, verificando que no existen duplicidades y respetando formatos, longitudes y textos.

    De todas formas, si lo que deseas es incorporar una base de datos de clientes que tengas y que es extensa, puedes hacer lo siguiente:

    – Desprotege el libro, la clave es: “123”.
    – Muestra la hoja denominada “DATOS”
    – Procede a ir añadiendo los datos de los clientes ¡pero los datos que introduzcas deben tener las mismas características que si los hubieses introducido uno a uno en la aplicación. Para que tengas una muestra de cómo debes formatearlos, te aconsejo que des de alta a un cliente y luego exportes desde el listbox a una hoja para ver qué datos debes introducir.

    De todas formas, si algún dato no es correcto, el sistema arrojará un error en la macro, donde podrás verificar la columna que está dando problemas.

    Es posible que en algún momento, cuando disponga de un poco de tiempo, automatice una opción para importar datos previamente validados en una hoja, pero por ahora esta sería la única opción de importar una cantidad masiva de información.

    Un saludo y espero que te sirva esta alternativa.

    Gracias por comentar!!

    Me gusta

    • Un Favor enorme estpo se ve de maravilla descargue el Excel y veo una sola Hoja donde puedo ingresar datos y todos los cuadros que se detallan arriba pero solo tengo una Hoja no veo las dos hojas que mencionas como DATOS Y COMBOS como lo puedo ver eso para cambiar lugares y datos agradeceria mucho tu apoyo y gracias por este enorme aporte

      Me gusta

      • Hola Dulman,

        Esas pestañas están ocultas, tan solo tienes que poner el cursor encima de la pestaña “CLIENTES” y pulsar en la opción mostrar y podrás hacer visibles las dos pestañas.

        Saludos.

        Me gusta

  4. muy buen trabajo, muchas gracias, como podria hacer para imprimira las fichas individuales ?? para poder compartir, ver el seguimiento con otros compañeros, etc

    Me gusta

  5. Hola Jacinto, se podría incluir un botón en el form de consulta de cada cliente, que imprimiese la ficha (userform), o se podría fabricar un modelo para exportar la información a una hoja Excel con un formado particular. El seguimiento de otros compañeros, se tendría que programar algo específico para realizarlo.

    Estos días no estoy disponible, estoy de vacaciones. A la vuelta, si tengo oportunidad, retomamos el tema. Feliz Año! Saludos.

    Me gusta

    • Hola Jacinto,

      Para poder imprimir el formulario, por ejemplo vamos a utilizar el de ALTA_CLIENTE tendría que crear un botón en el formulario, posiblemente el mejor lugar de introducirlo sea al lado de GRABAR DATOS y en el código del propio botón pegar esto:

      Private Sub CommandButton3_Click()
      ALTA_CLIENTE.PrintForm
      End Sub

      Con el comando Printform imprimir el formulario directamente.O pasarlo a PDF, etc.

      Saludos.

      Me gusta

    • Hola Jacinto, la longitud de los 250 caracteres se puede modificar directamente entrando en el el editor de vba y en los formulario de modificación de cliente y alta de cliente, entrar en la propiedad maxlength cambiar los 250 a la longitud que necesites. Tendrías que hacer un poco más ancho el textbox donde se escribe para que entre todo el texto.

      Saludos.

      Me gusta

  6. Saludos Segu desde Costa Rica, primero darte las gracias por compartir tus conocimientos sin restricción, sin egoísmo, yo soy nuevo en esto de programar macros y gracias a tus conocimientos me interese mas y estoy aprendiendo mas gracias a ti. Felicitaciones por no ser egoísta.
    Estoy implementando un sistema de facturación el cual afecte inventarios, cuentas por cobrar y a la vez afecte la parte contable. Tus conocimientos de este programa de clientes lo estoy analizando paso a paso para implementarlo a mi idea para crear clientes usando formularios. Dios te bendiga estoy aprendiendo mucho poco a poco. gracias

    Me gusta

    • Muchas gracias Raúl,

      Me alegro que te sirva de utilidad el programa, sin duda, lo puedes modificar y adaptar a tus necesidades, y como bien dices, sirve además para ir aprendiendo sobre programación. Siempre he tenido claro que los conocimientos se deben compartir, es la única forma de crear valor.

      Saludos!

      Me gusta

    • Hola Raul estoy intentando crear un formulario de facturación para un cliente y no se como hacerlo, tu lo conseguiste. Gracias Segu por las aportaciones

      Gracias

      Me gusta

  7. Hola Segu,
    primero agradecerte tu aportación altruista.
    Tengo una pequeña duda,en la búsqueda,solo permite encontrar el registro si introduces el nombre de cliente completo e igual,nombre y dos apellidos.
    Seria muy complicado que buscase si solo introduces nombre o primer apellido o segundo apellido?
    muchas gracias

    Me gusta

  8. Hola Francisco,

    El proyecto VBA no está protegido con contraseña, solamente existe una contraseña y es la que te he comentado y sirve para borrar los datos de clientes del programa. El resto de elementos está completamente abierto.

    Saludos

    Me gusta

  9. Buenas tardes:

    Me parece excelente tu aporte, ya he modificado los datos para los objetivos que tengo. Sin embargo, se mantiene un problema que no he podido dar solución, el cual consiste que al entrar en el formulario de busqueda y modificación de clientes sólo me arroja el resultado de uno de los clientes, es decir, ya sea que indique en número de cliente un número distinto de 1, de todas formas me aparece los datos del cliente asignado al n° 1. Misma situación me sucede si coloco el nombre completo del cliente.

    Serías tan amable de indicarme como podría solucionar ese pequeño problema.

    Gracias

    Me gusta

    • Hola crisvalmarch,

      Tendría que ver el formulario para saber cuál es el problema. Si has realizado cambios en la programación, muy probablemente han influido en el comportamiento del buscador.

      Puedes enviarme el archivo al correo de la web: excelsignum@yahoo.es y en cuanto tenga un momento lo verifico.

      Saludos.!!

      Me gusta

  10. Excelente trabajo, en una herramienta muy útil se agradece el aporte, una consulta, como puedo hacer para modificar el programa y me sea posible grabar un registro de cliente, sin necesidad que todos los campos sean obligatorios, agradezco la explicación.

    Me gusta

    • Hola Guillermo,

      Para realizar la desabilitación de los campos obligatorios es necesario realizar cambios en el código, tanto en la pantalla de toma de datos como en la de modificación. Por ejemplo, para quitar la obligatoriedad del tipo de vía, que ahora está así:

      If ALTA_CLIENTE.ComboBox3 = Empty Then
      MsgBox “DEBES INDICAR UN TIPO DE VIA”, vbInformation, “TIPO DE VIA”
      Exit Sub
      End If

      Simplemente habría que borrar esta parte del código. Pero en algunos campos el dato debe ser obligatorio, como DNI o CIF que controlan que no existan clientes duplicados.

      Esa sería la forma, con cuidado y verificando en cada cambio las funcionalidades.

      Saludos.

      Me gusta

  11. Hola, primero felicitarte por el gran trabajo realizado, me gusto mucho pero lo único que quiero saber es como eliminar algunas cosas que no me son útiles por lo menos a mi, por ejemplo tanto dato para registrar a un cliente nuevo, yo solo necesito el nombre y apellido, numero de contacto, dirección y alguna referencia, el resto me sobra (= como puedo modificar eso ??? para no tardar tanto en ingresar un cliente nuevo, tengo un negocio de comida rápida y día a día voy ingresando clientes nuevos con la idea de registrar su direccion y entregar su pedido en la dirección dada. quedo atento a sus comentarios GRACIAS

    Me gusta

    • Hola Mario,

      Se tendrían que ir eliminando los controles que existen en cada uno de los botones de grabar y modificar datos. Lo comento justo en la pregunta del lector anterior.

      El motivo de los controles es precisamente velar por la integridad de los datos (es necesario introducir controles para que la información sea uniforme y con un formato similar). He diseñado la aplicación para funcione en cualquier versión de Excel y con acceso a la programación por si es necesario realizar modificaciones. Para invalidar los controles, debes encontrar en cada formulario aquel código que condicione la entrada de datos y eliminarlo (siempre con cuidado) prestando atención de que no afecte a otra parte del formulario.

      Saludos.

      Me gusta

  12. Excelente! y gracias por el aporte. Me gustaria que algun dia pueda hacer una plantilla de control de cuentas por cobrar. Para llevar un control de los prestamos que se le otorga al cliente.

    Me gusta

  13. HOLA AMIGO BUENOS DIAS, ME PARECE ESTUPENDO EL TRABAJO QUE HIZO, PERO TENGO UN INCONVENIENTE, SUCEDE QUE A LA HORA DE BUSCAR Y MODIFICAR, NO ME BUSCA, SOLO BUSCA EL PRIMER CLIENTE QUE SE INGRESA, NO SE ENCUENTRA NI POR IDENTIFICACIÓN, NI POR NOMBRE NI POR CÓDIGO, NO BUSCA SI NO EL PRIMER DATO QUE SE INGRESA

    Me gusta

    • Hola Jaider,

      Sobre la consulta que realizas, el programa está probado en excel 2003, 2007, 20010, 2013 y 2016 para Microsoft y en 32 bits. ¿Qué versión estás usando?, ¿usas Mac?.

      Por otra parte, ¿has realizado algún tipo de modificación en la programación?,si es así, puede que tenga que ver con el problema que comentas. Por lo demás debería funcionar correctamente,

      Saludos.

      Me gusta

  14. Hola Segu lo primero reconocer tu aporte, (gran trabajo). En mi caso quisiera poder introducir los datos de los clientes, en alguna ocasión no tengo todos en estos momentos, aún que, me gustaría ir completando o modificando posteriormente, pero el programa no me deja grabar si no están todos los campos rellenos, eso es posible ?
    Gracias por contestar, saludos

    Me gusta

    • Hola Miguel Ángel, la respuesta es que sí, y para ello sería necesario que entrases en la programación de VBA y eliminases todos aquellos controles que no necesitas a la hora de validar la información. En respuestas anteriores comento esta única posibilidad. No obstante, visto el número de preguntas sobre la necesidad de eliminar los controles, es posible que en unos días presente otra versión sin controles.

      Saludos.

      Me gusta

  15. Pingback: GESTIÓN DE CLIENTES (modificaciones) | Excel Signum

  16. Hola Segu, primero agradecerte el aporte que nos haces. Me gustaría que los nuevos datos que he añadido al formulario de nuevo cliente, como por ejemplo el numero de CC o la fecha de vencimiento de contrato, apareciesen en la hoja de DATOS al igual que aparece el nombre, NIF, dirección… Podrías ayudarme. Gracias.

    Me gusta

    • Hola Manuel,

      Para que los datos aparezcan en la hoja Datos, es necesario modificar el código vba, y haciendo referencia los nuevos textbox a la hoja Datos en el momento que se confirma el alta del cliente. También debería aparecer esta información en el formulario modificar cliente, por si necesitas actualizar la información o modificarla o simplemente consultar al cliente.

      La introducción de nuevos campos requiere reprogramar el código. Puedes intentar hacerlo, guiándote sobre los campos que ya existen e ir añadiendo los nuevos al código, tanto en altas como en modificar cliente. Si tienes problemas, envíame el formulario y una breve explicación de lo qué necesitas e intento ver lo que se puede hacer.

      Saludos.

      Me gusta

  17. buenas noches segu, gracias por el aporte ante todo.
    te quería comentar como podria hacer para que cada vez que ponga un nuevo cliente asignarle un numero diferente?o tiene que ir por orden?
    gracias totales!

    Me gusta

    • Hola Jordi,

      Inicialmente programé la aplicación para que ese número de cliente o ID lo otorgue directamente la el programa (de la misma forma que lo hace Access y otros programas de bases de datos). Lo principal es que no existan duplicados, es un código de identificador único que una vez que se asigna al cliente siempre lo tendrá, incluso si lo das de baja y luego lo vuelves a reactivar. Además de controlar así el número de clientes que tienes (que es importante).

      La pregunta, es ¿para qué necesitas asignar el número si el programa ya lo hace por ti?

      Siguiendo con lo comentado, se podría realizar lo que comentas, pero requiere cambiar de forma importante la programación (y algunos formularios), es decir el mismo control que se hace cuando se agrega el DNI (que tiene que se único) se tendría que aplicar para dar de alta el número de cliente, posiblemente agregando un nuevo textbox (numero de cliente) en el que agregues un número y el programa compruebe si existe o no ese número y lo asigne a la primera columna de Datos.

      En resumen, es posible, pero no recomendable. Abría que analizarlo detenidamente.

      Saludos!

      Me gusta

      • gracias por la respuesta tan rapida, lo que pasa que pertenezco a una organización la cual esta constituida por un numero determinado de personas las cuales tienen asignadas unos numero de socios para que vayan agregando y el orden es aleatorio. porque lo han hecho así no lo se pero bueno.
        se agradece la explicación pero la verdad que no domino mucho este tema de base de datos.
        un saludo y mils gracias

        Me gusta

        • Comprendo, … y seguramente tengan varios identificadores (además de ese aleatorio). Lo más útil sería agregar un nuevo campo e ir asignando ahí los números de cliente/socio o modificar más a fondo el programa. Esto es una de las mejores formas para ir practicando y aprendiendo poco a poco.

          Un saludo y muchas gracias a ti por el interés.

          Me gusta

  18. Segu disculpa que te moleste este argentino desde aca lejos, pero no se como hacer para que me tome otro “documento” cuando es persona juridica, aqui tenemos un numero llamado CUIT y logre ponerlo como opcion, pero luego no me deja grabarlo porque me pide un NIF o algo asi.

    Desde ya muchas gracias

    Me gusta

    • Hola Geremías,

      Para introducir un nuevo campo, es necesario que modifiques la programación. Pero creo que lo mejor sería que modificases el campo CIF, si no lo vas a utilizar por CUIT, primero debes cambiarlo en la hoja Combos (el uno por el otro) y luego modificar dentro del formulario, tanto en el formulario de Altas como en el de Modificación.

      Lo más sencillo es que utilices el comando reemplazar de VBA y realices CIF por CUIT, luego lo único que tendrás que modificar es la longitud del campo, actualmente es de 9 dígitos.

      Saludos.

      Me gusta

  19. Muy buenas tardes.

    A la hora de ejecutar los formularios, estos son de un tamaño muy superior a la pantalla de mi PC y no puedo acceder a los botones de acción situados en la parte inferior del formulario.
    No se modificar dicho tamaño. Como hay que hacerlo?

    Gracias

    Me gusta

    • Hola Pedro,

      Supongo que el equipo que usas tiene una pantalla más pequeña y en el formulario de modificaciones (que es el más grande) no puedes ver los items de abajo. Para modificar el tamaño de cada userform se puede hacer de varias formas, manualmente, con macros, o en las características del formulario. Yo te recomiendo que lo hagas manualmente, porque seguramente son uno o dos formularios los que te quedan pequeños.

      Para hacerlo, abre el programa, luego entra en la ficha programador > pincha en Visual Basic y verás la ficha del proyecto con todos los formularios que cuelgan de la carpeta formularios. Haz doble clic en el que quieras modificar y se visualizará, ahora solo tienes que modificar su tamaño manualmente, estirando o recortando en los bordes o en el centro (como si se tratase de una imagen), así lo pondrás a tu gusto.

      Espero haberme explicado.

      En microsoft lo indican en este enlace: https://support.microsoft.com/es-es/kb/827710

      Saludos.

      Me gusta

    • Hola Israel,

      No indicas el tipo de error, ni el sistema operativo y la versión de Excel. El programa funciona correctamente (lo acabo de probar). A la espera de tus comentarios.

      Saludos.

      Me gusta

    • Hola frenneri,

      El programa no marca error en mi equipo, estoy utilizando excel 2016 y en su momento lo programé en Excel 2010. Incluso está testado en Excel 2003.

      Necesitaría conocer que versión de Excel tienes y una captura del error en VBA en el momento de ejecutar el código.

      Saludos.

      Me gusta

      • Segu, muchas gracias por el aporte. Un par de dudas, como puedo hacer para que siempre se muestre la hoja de Datos , intento en visual cambiar la hoja a Visible en lugar de hidden pero al grabar y volver a abrir no me lo respeta. Adicionalmente quisiera alguna recomendación para aprender programación de este tipo . Saludos y excelente aporte .

        Me gusta

        • Hola Jacobo:

          No hace falta que modifiques la hoja, debes entrar en el editor de VBA y en el formulario “CLIENTES” accedes a la programación y modificas

          Worksheets("DATOS").Visible = False a True

          Quedando así:

          Private Sub UserForm_Initialize()
          'OCULTAMOS HOJAS "DATOS" Y "COMBOS" AL INICIAR
          Worksheets("DATOS").Visible = True
          Worksheets("COMBOS").Visible = False

          De esta forma, cada vez que inicies el programa la pestaña datos se hará visible.

          Espero haberte ayudado.

          PD: la programación solo la aprenderás con práctica, aprendiendo de los errores y siendo muy constante. Manuales de VBA hay varios, pero sin duda donde mejor aprenderás será entrando en foros, páginas webs, etc. Y en tus trabajos diarios, poco a poco ir introduciendo pequeños códigos.

          Saludos.

          Me gusta

  20. Hola Segu,

    Muchas gracias por tu aporte, me es de mucha ayuda. Una consulta que ya sería la bomba, como puedo hacer para que la fecha de alta y de baja me permita nodificarla.

    MIL gracias!!

    saludos

    Me gusta

    • Hola Jesús:

      Directamente en el formulario, no se puede hacer, de hecho el programa no permite modificar la fecha de alta (que se queda grabada a “fuego” en el día que ese cliente se da de alta. Con la baja ocurre lo mismo, si se tramita la baja quedará reflejado el día de la baja, y si se vuelve a dar de alta (porque hemos recuperado al cliente), lo reactivamos (y ,marcamos el número de reactivaciones para saber que esa persona ya ha sido cliente). Es un proceso simple para evitar históricos de altas y bajas.

      Sin embargo siempre se pueden modificar las cosas 🙂 para poder modificar la fecha de alta o de baja, puedes hacerlos directamente en la hoja “DATOS” que está oculta (solo tienes que hacerla visible con el botón derecho pulsando encima de una pestaña. Ahí podrás modificar cualquier dato.

      Espero que esto te sirva.

      Saludos.

      Me gusta

  21. excelente trabajo, queria consultarte algo :
    en las opciones de sexo donde puedo elegir entre masculino y femenino yo cambié de campos para esa selección, sexo(interés) masculino (alquiler) femenino (venta), cuando grabo los datos en la lista de informe previo me sale M o F , donde cambia esto para que me salga alquiler o venta respectivamente como resultado, espero su respuesta. muchas gracias

    Me gusta

    • Hola Miguel:

      Claro que te sale en informe previo ese dato, es que lo que has cambiado es solo la etiqueta del option button. Para modificar ese valor debes entrar en la programación. En concreto, entrar en los siguientes userform y cambiar la H o la M según tus necesidades. Y también en informe previo y cambiar la palabra SEXO por la que sea adecuada:

      USERFORM: CONFIRMAR ALTA (ACEPTAR)
      If ALTA_CLIENTE.OptionButton1.Value = True Then
      Worksheets("DATOS").Cells(final, 7) = "H"
      End If
      If ALTA_CLIENTE.OptionButton2.Value = True Then
      Worksheets("DATOS").Cells(final, 7) = "M"
      End If

      USERFORM: CONFIRMAR MODIFICAR (ACEPTAR)
      If MODIFICAR_CLIENTE.OptionButton1.Value = True Then
      Worksheets("DATOS").Cells(i, 7) = "H"
      End If
      If MODIFICAR_CLIENTE.OptionButton2.Value = True Then
      Worksheets("DATOS").Cells(i, 7) = "M"
      End If

      INFORME PREVIO (BOTÓN EXPORTAR)
      Cells(1, 7) = "SEXO"

      Saludos.

      Me gusta

      • Estimado muchas gracias por tu generosa respuesta, te lo agradezco desde Peru quería hacerte una ultima consulta,cuando entramos a consultas o modificar datos, y filtramos por numero de cliente ¿ como haríamos para que los campos tipo de documento – tipo de Via – provincia/region y pais puedan también cambiarse ya que hay a veces al ingresar la información esta puede ser equivocada. espero su apoyo y muchas gracias por compartir sus conocimientos.

        Me gusta

        • Hola Miguel:

          Todos los datos del listbox los puedes cambiar excepto el número de cliente, que es interno. Para cambiar solo tienes que entrar en el formulario de modificación y consulta, buscar el cliente y una vez que lo tengas pulsar en el botón MODIFICAR, en ese momento se desprotegen todos los datos y los puede modificar. Luego solo has de confirmar y guardar.

          Saludos.

          Me gusta

  22. Hola Michael:

    Para programar un registro de pedidos sería necesario programar un módulo aparte, es decir, la aplicación está configurada para trabajar con el registro de clientes, con datos únicos. Un registro de pedidos requería tener en cuenta fechas, varios registros por cliente, etc. Sería un nuevo proyecto, y actualmente no dispongo del tiempo suficiente para realizarlo. Es posible que en un futuro implemente dicho módulo junto con un control de inventario.

    Saludos.

    Me gusta

  23. Hola muy buenas tardes, en verdad tu aplicativo es el más completo que he encontrado hasta hoy, excelente, perfevto y muy funcional, millon de gracias por compartir tan valiosa herramienta ya que esto es lo que yo he andado buscando.
    Quería consultarte un par de puntos nada más, partiendo que no entiendo mucho de código pero intenté modificar algunos campos, logré cambiar algunos nombres de casillas y cargar nombres de lugares al menú desplegable de provincia por ejemplo, funcionó muy bien pero cuando intenté borrar algunos campos que no necesito o dejar sin obligatoriedad otros, es allí donde me dio el problema.
    Pregunta:
    – Si deseo que un campo no sea obligatorio (por ejemplo EMAIL) basta con borrar una parte de código que indicaste comentarios atrás o hay que eliminar o modificar algo más?

    -Si deseo que un campo sea obligatorio debo poner ese mismo código o se debe agregar algo más?

    – si deseo limitar la cantidad de dígitos a ingresar en el campo teléfono, que código deberé agregar?

    – Si deseo por ejemplo eliminar el campo de TIPO DE VIA, (entiendo que cada campo no solo está definido por un parrafo de instrucción sino que está conectado con otras porciones de código más adelante) en este caso, debo modificar todas las líneas de código que estén conectadas con este campo, por lo cual, si deseo eliminar el campo de TIPO DE VIA, cuáles líneas de código son las que tengo que borrar?
    (el detalle es que eliminé ese campo borrando un parrafo de instrucción con referencia a dicho campo, pero cuando corro el aplicativo se abre el codigo fuente indicando obviamente que falta algo o hay un error)

    conclusión, puedes indicarme mediante un ejemplo, si quiero borrar el campo “TIPO DE VIA” que partes del código debo tocar? y asi eliminarlo por completo sin que me de errores o que el aplicativo se quede colgado buscando una instrucción.
    muchas gracias de antemano, eres muy amable, saludos desde El Salvador

    Me gusta

    • Hola Sonee:

      Respondiendo a tu comentario, antes de nada te recomiendo que te descargues la segunda versión del programa, el link lo tienes en rojo al final de este post. Ahí he desactivado que algunos campos sean obligatorios, los verás porque no he borrado la programación, simplemente la he comentado y ya no aplica.

      Para limitar los caracteres del textbox: lo puedes hacer por código: ALTA_CLIENTE.TextBox5.MaxLength = 9 o en las propiedades del objeto.

      Si eliminas programación para eliminar un campo, a no ser que tengas bien estudiado el programa, te encontrarás con errores, porque todo está relacionado, una pantalla graba, otra modifica y otra muestra, y todos los datos se guardan en una hoja.

      En resumen, lo que te recomiendo es que re-utilices aquellos campos que no vayas a usar y los modifiques. Los que quieres eliminar, o bien ocultas el textbox (en propiedades visible=false) o bien eliminas código pero vas verificando que lugares debes modificar también.

      Espero haberte ayudado algo con este tema (que es complejo).

      Saludos

      Me gusta

      • Hola Segu buenas tardes, muy amable por atender la consulta, eres muy profesional y muchas gracias por tu ayuda, intentaré todo eso q me dices, la segunda versión q me dices me resultó muy interesante y mejor q la primera, me hubiera gustado descargarla pero hay un peqeño detalle y es q no tiene el botón de imprimir q una versión anterior sí tenía y lastimosamente hubiera sido genial descargarla pero ese botón es bien necesario para lo que yo hago, sería muy bien si en algún momento lo habilitaras en una nueva mejora, te deseo éxitos y muchisimas gracias siempre!!

        Me gusta

        • Hola Sonee:

          Espero que puedas realizar las modificaciones y te funcionen correctamente. No recuerdo poner en ninguna versión un botón para imprimir. Sí recuerdo indicar como hacerlo. Es decir, en cualquier formulario añades un botón y en código de ese botón insertar esto:

          Private Sub CommandButton3_Click()
          ALTA_CLIENTE.PrintForm
          End Sub

          En este caso, es el del alta del cliente, pero puede ser cualquiera.

          Saludos.

          Me gusta

          • Hola Segu, buenas tardes, me descargué una versión en la cual teníaese botón agregado, especificamente en el apartado de CONSULTAS, muchas gracias por tu valiosa ayuda y por la porción de código que me indicas para habilitar botón IMPRIMIR, voy a modificar el programa a mi gusto claro y hasta donde pueda y te comento como me fue, que tengas los mejores éxitos siempre y bendiciones!!

            Me gusta

    • Hola Jesús:

      Tienes un enlace de descarga en este mismo post, pincha encima y automáticamente descargarás la información, el enlace es:
      “Descarga el archivo pulsando en: GESTION DE CLIENTES”

      Saludos.

      Me gusta

  24. Está Genial, pero quiero modificar algunos datos por ejemplo dice CIF me encuentro en colombia y debe ser NIT, me puedes indicar como modificar estas cosas tan simples y poder hacer uso de este archivo

    Me gusta

    • Hola Andrea. Tienes que entrar en el editor de vba y seleccionar el informe que necesites. Luego modificas el nombre de las etiquetas. Por ejemplo el NIF etc. Saludos!!

      Me gusta

    • Hola markkingcompany:

      Para hacer eso debes modificar la parte del código que se encarga de asignar el ID, que está en el formulario “CONFIRMAR ALTA”: y bastaría con añadir: & Round(Rnd * 100, 0) al ID que se va generando, es decir un aleatorio o si quieres una aleatorio entre, etc, simplemente concatenas el ID con el aleatorio:

      If Worksheets("DATOS").Cells(final, 10) <> Empty Then
      n_emplea_fin = Application.WorksheetFunction.Max(Range("A:A")) + 1
      Worksheets("DATOS").Cells(i, 1) = n_emplea_fin & Round(Rnd * 100, 0)
      End If

      Solo tienes modificar esa parte del código.

      Saludos!

      Me gusta

      • Gracias por el apoyo Segu, tengo una consulta adicional, en caso quiera generar un código alfanumérico correlativo en base al tipo de personería jurídica, ejemplo:

        Persona Física –> El código a general seria PF-0001 (correlativo 0001, 0002, 0003, 0004, etc)
        Persona Jurídica –> El código a generar sería PJ-0001 (correlativo 0001, 0002, 0003, 0004, etc)

        A la espera de tu apoyo, agradecido de antemano

        Me gusta

        • Hola:

          Si quisieras un código alfanumérico como el que indicas, es necesario realizar algunos cambios e introducir nuevas funciones y condiciones, deberías sustituir lo comentado anteriormente por esto:

          'ASIGNAMOS NUMERO DE CLIENTE, SERÁ EL ÚLTIMO Y EL MAYOR MÁS 1
          If Worksheets("DATOS").Cells(final, 10) <> Empty Then
          n_emplea_fin_pf = Application.WorksheetFunction.CountIf(Range("A:A"), "PF*") + 1
          n_emplea_fin_pj = Application.WorksheetFunction.CountIf(Range("A:A"), "PJ*") + 1
          If ALTA_CLIENTE.ComboBox1 = "PERSONA FISICA" Then
          Worksheets("DATOS").Cells(i, 1) = "PF-" & Format(n_emplea_fin_pf, "000")
          Else
          Worksheets("DATOS").Cells(i, 1) = "PJ-" & Format(n_emplea_fin_pj, "000")
          End If
          End If

          Si necesitas poner más ceros a la izquierda solo has de añadirlos a la función.

          Saludos.

          Me gusta

  25. Hola, quisiera tu apoyo en lo siguiente

    En el tipo de personeria juridica estamos incluyendo 4 opciones:
    – CLIENTE
    – PROVEEDORES
    – UNIDADES DE NEGOCIO
    – OTROS

    quisiera generar un código alfanumérico correlativo en base al tipo de personería jurídica, ejemplo:

    CLIENTE –> El código a general seria CL-0001 (correlativo 0001, 0002, 0003, 0004, etc)
    PROVEEDORES –> El código a generar sería PR-0001 (correlativo 0001, 0002, 0003, 0004, etc)
    UNIDADES DE NEGOCIO -> El código a generar sería UN-0001 (correlativo 0001, 0002, 0003, 0004, etc)
    OTROS -> El código a generar sería OT-0001 (correlativo 0001, 0002, 0003, 0004, etc)

    A la espera de tu apoyo, agradecido de antemano

    Le gusta a 1 persona

    • Hola markkingcompany:

      En el comentario anterior ya te comentaba como podrías hacerlo. Pero ahora parece que necesitas introducir más ITEM en el combo (supongo que los has indicado en la hoja combos para que los cargue el combobox.

      Bien, una vez que los puedes seleccionar, el código que debes indicar en el formular de “CONFIRMAR ALTA” es el siguiente.

      ‘ASIGNAMOS NUMERO DE CLIENTE, SERÁ EL ÚLTIMO Y EL MAYOR MÁS 1
      If Worksheets("DATOS").Cells(final, 10) <> Empty Then
      n_emplea_fin_pf = Application.WorksheetFunction.CountIf(Range("A:A"), "PF*") + 1
      n_emplea_fin_pj = Application.WorksheetFunction.CountIf(Range("A:A"), "PJ*") + 1
      n_emplea_fin_cl = Application.WorksheetFunction.CountIf(Range("A:A"), "CL*") + 1
      n_emplea_fin_pr = Application.WorksheetFunction.CountIf(Range("A:A"), "PR*") + 1
      n_emplea_fin_un = Application.WorksheetFunction.CountIf(Range("A:A"), "UN*") + 1
      n_emplea_fin_ot = Application.WorksheetFunction.CountIf(Range("A:A"), "OT*") + 1

      If ALTA_CLIENTE.ComboBox1 = "PERSONA FISICA" Then Worksheets("DATOS").Cells(i, 1) = "PF-" & Format(n_emplea_fin_pf, "0000")
      If ALTA_CLIENTE.ComboBox1 = "PERSONA JURIDICA" Then Worksheets("DATOS").Cells(i, 1) = "PJ-" & Format(n_emplea_fin_pj, "0000")
      If ALTA_CLIENTE.ComboBox1 = "CLIENTE" Then Worksheets("DATOS").Cells(i, 1) = "CL-" & Format(n_emplea_fin_cl, "0000")
      If ALTA_CLIENTE.ComboBox1 = "PROVEEDORES" Then Worksheets("DATOS").Cells(i, 1) = "PR-" & Format(n_emplea_fin_pr, "0000")
      If ALTA_CLIENTE.ComboBox1 = "UNIDADES DE NEGOCIO" Then Worksheets("DATOS").Cells(i, 1) = "UN-" & Format(n_emplea_fin_un, "0000")
      If ALTA_CLIENTE.ComboBox1 = "OTROS" Then Worksheets("DATOS").Cells(i, 1) = "OT-" & Format(n_emplea_fin_ot, "0000")
      End If

      Se tratarán como si fuesen una persona física (es decir no una empresa), si quieres que en algún caso se trate como persona jurídica, lo debes cambiar en la programación.

      Saludos.

      Me gusta

  26. Buenos dias.

    Antes de nada GRACIAS por la tremenda aportación realizada. El programa es de 10 aunque necesitaría poder realizar un par de cambios que no se si, por que trabajo en MAC o por restricción del autor no puedo modificar.

    Me gustaría poder ponerme en contacto contigo para comentarte los cambios a realizar y acordar un precio por dichos cambios.

    Un saludo

    Me gusta

    • Hola Julio Alberto:

      Me alegro que te guste el programa 🙂

      Exactamente qué cambios quieres realizar?, esto es importante, porque algunos cambios pueden requerir modificaciones grandes en la programación.

      Envia un correo a excelsignum@yahoo.es explicando los cambios exactos de lo que necesitas.

      Saludos

      Me gusta

  27. Buenas tardes, antes que nada el programa es genial y me sirve mucho.
    Luego, un apunte, ¿Cómo podría hacer para insertar en otra hoja de cálculo el num del cliente, observacion y fecha de observacion, y que cuando pulsara otro botón, por ejemplo de observaciones en la ficha de cliente, saliese una pantalla con las observaciones ordenadas por fecha?

    Muchas gracias por todo, Segu

    Me gusta

    • Hola Paco:

      Tendrías que duplicar el proceso de grabado de datos que se obtiene de los formularios de alta y modificación. Es decir, además de que en el código haga referencia a la hoja DATOS, tendría que hacer referencia también a la hoja que quieras crear.

      Es un proceso relativamente sencillo, pero que lleva un tiempo (tiempo del que no dispongo para poder hacerlo). Te animo a que estudies detenidamente el código y su funcionamiento e intentes realizar los cambios.

      Un saludo

      Me gusta

    • Hola Orlando:

      El formato debes aplicarlo en el código, en el momento de pasar los datos a la hoja. bastaría con usar NumberFormat = “0” en aquellos campos que quieras utilizar como número.

      Pero debes hacerlo en el código. Saludos.

      Me gusta

  28. Hola, me gustaria saber como hacer que algunos campos no sean obligatorios en el archivo. Gracias por tu aporte me va muy bien con la captura de clientes que estoy haciendo, solo que algunos no dejan todos los datos y me trabo al tratar de capturarlos.

    Gracias y saludos!

    Me gusta

¿Te ha gustado?. Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s