Como evitar valores repetidos en una columna

Bueno, primero quiero dar las gracias a varios expertos de esta maravillosa página que me han ayudado bastante sobre como programar en VBA para excel 2007. Ok mi inquietud es la siguiente, en la empresa donde trabajo desempeño el cargo de administrador, actualmente no poseen un sistema administrativo que lleve en orden toda las cosas, cuando comencé a trabajar empecé a realizar una aplicación que llevaba el orden de todo. Entonces me tope con algo, en la página principal del libro que se llama "MENU" tengo un botón que me abre un formulario para ingresar un nuevo cliente a la base de datos ubicada en el mismo libro pero en otra hoja, en esa parte no tengo ningún tipo de problema, el detalle es el siguiente: en uno de los textbox del formulario se digita el "Nº de contrato" del cliente, el problema es que necesito que cuando vaya a ingresar otro cliente y la persona digite un Nº de contrato que ya exista automáticamente me aparezca un MsgBox que indique que ese numero de contrato ya existe, ademas que esa acción este en el mismo CommandButton que da la acción "Guardar" en el formulario. Gracias por su ayuda de antemano!

1 Respuesta

Respuesta
1
Indicame el nombre la hoja y la columna en que están los números de contrato, para realizar el sub que realizara la búsqueda.
OK mira te explico la hoja1 del libro que manejo se llama "MENU DEL SISTEMA", en esa hoja están los botones que bien te deja revisar la base de datos de los clientes por vehículos o por motocicletas o bien sea agregar un nuevo cliente a la data, en la hoja1 hay un botón que se llama "Agregar un nuevo cliente", cuando le haces click automáticamente el te abre un Form donde se encuentran los textbox, combobox donde vas rellenandolos para vaciar la información en la base de datos, de todo los datos hay 2 que son sumamente delicado que incluso me he ganado regaños de mi supervisor por no tener cuidado, los campos se llama "Nº de contrato" y "Tipo de Financiamiento", cuando vas a digitar el "Nº de contrato" lo haces por un textbox, y cuando vas a colocar el "Tipo de Financiamiento" te abre una lista desplegable que te indica si es "Motocicleta" o "Vehiculo", si el usuario escoge "Vehiculo" el automáticamente guarda los datos en la hoja2 llamada "DATA CLIENTES VEHIUCULOS", y si escoge "Motocicleta" automáticamente los guarda en la hoja3 llamada "DATA CLIENTES MOTOCICLETA" (Las dos hoja de base de datos son exactamente iguales lo único que se diferencia es que una guarda información de clientes por vehículos y otra de clientes por motocicleta). Luego que el usuario rellena todo los campos del formulario da click en el botón "GUARDAR" (el botón se encuentra dentro del formulario), en todo ese proceso no tengo ningún problema, el detalle es que cada cliente bien sea por motocicleta o vehículo posee un "Nº de contrato" único, entonces lo que necesito saber es como hacer para que cuando alguien de click en el botón "GUARDAR", el botón me revise primero el si el "Nº de contrato" que dígito el usuario no se encuentra registrado, en caso tal que se encuentre registrado emita un msgbox (en eso tampoco tengo problema) y sino lo esta lo guarde tranquilamente
Disculpame si te escribí mucho pero era para que etendieras como funciona lo que estoy haciendo y de esa forma no te quito tanto de tu tiempo, muchas gracias por responderme :)
Chanfles lo olvidaba xD, en el formulario es el textbox4 en donde se vacía el numero (solo caracteres numéricos) y en la hoja de calculo es la columna "M6"
en un modulo del tu proyecto insertas este sub
Sub buscar(contrato As String)
' buscar el contenido de la variable contrato en al hoja indicada
Dim r As Range
Set r = Sheets(1).Range("A:A").Find(What:=contrato)
On Error GoTo errores
If r <> "" Then MsgBox "El contrato: " & contrato & " Ya Existe", vbCritical, "Verificar"
Set r = Nothing
errores:
If Err.Number = 91 Then Set r = Nothing: Exit Sub
End Sub
Como ves contiene el argumento contrato, en esta variable debe ir el numero de contrato que sera reviso para verificar si existe o no.
para llamar erste sub debes hacerlo asi:
Call buscar(TextBox3)
Suponiendo que el numero de contrato esta digitado en el text3 ( debes modificar ese argumento por el control que desees).
Esta llamada la puedes poner en el evento que mencionas sencillametne de esa fomra. Insertando la linea y su argumento, luego esto pasa al sub antes mencionado y en función al resultado de la búsqueda te dirá si existe o no. si existe te aparece el mensaje si no, no aparece nada. Eso es lo que solicistaste en primera instancia, pregunta inicial.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas