Macro para que no se repitan los códigos

Estoy realizando un formulario en excel con el editor de Visual Basic mi formulario me permite el ingreso de datos que se guardan en una hoja de excel entre los datos tengo "Código, nombre, dirección, teléfono, cargo... Etc" cosas por lo parecido pero quisiera que me ayudes con una macro que no permita que el código que ingreso en el formulario para cada uno de mis empleados o se repita.
O me salga un mensaje que el código ya esta asignado o guardado

2 respuestas

Respuesta
1
La mejor idea para llevar un numero de identificación es tu crear un correlativo
Como se hace esto cuando tu cargas el formulario te vas al ultimo registro grabado tomas el ultimo correlativo y le agregas 1 nunca de esta forma repetirás un código, por lo cual es la mejor forma de realizar el ingreso. Si la base esta en blanco te debería dejar el 1 como primer registro.
Range("A13").Select
Selection.End(xlDown).Select
Así podría ser la fórmula de buscar el ultimo si el correlativo estuviera el la columna A y comenzara en la fila 13
Comentame como te va
Perdón creo que no fui muy claro al principio
Mira el código que tengo que ingresar es la "cedula de identidad" como lo conocemos en mi país creo que en Europa en especial en españa lo llaman DNI que es un registro único para cada persona entonces al ingresar este código a mi formulario me almacena toda la información.
Lo que yo quisiera es si se puede una macro que no permita el ingreso de una cedula si esta ya fue ingresada con anterioridad
Otra ves gracias por responder tan rapido
saludos...
Ingresa este código en el formulario que tienes para digitar el valor debes ocupar el textbox donde recibes el dato
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim rut As String
    rut = UserForm2.TextBox2
    Range("C13").Select
    While ActiveCell <> Empty
        If ActiveCell = rut Then
            Dim existe As String
            existe = MsgBox("Proveedor EXISTE, No puedo ingresar nuevamente ?", vbExclamation, Title:="Ingresar Proveedor")
            TextBox2 = Empty
            Unload Me
        End If
        ActiveCell.Offset(1, 0).Select
    Wend
Range("C13").Select
End Sub
Pruébalo y comentame
Respuesta
1
Vamos a ver tu rellenas tu formulario con los datos que tengas que introducir, supongamos que el valor del TextBox1 es el de Código y este lo llevas a la Hoja1 Columna A, evidentemente siempre escribirá en la primera celda vacía(así habrás implementado el código). Pero antes de llegar a la ultima celda vacía debes de quitar el código, para que vaya directamente, y lo que vamos a hacer es que antes repase todas las celdas para comprobar si existe el valor, si este existe vamos a vaciar el Textbox1 y te aparecerá un Msgbox que te avise, así solo tendrás que corregir ese Textbox y no todos, quedaría así:
Sheets("Hoja1").Select
Range("A1").Select
Do While ActiveCell.Value<>""
If ActiveCell.Value="" Then
ActiveCell.Value=TextBox1.Value
Exit Do
Else
If ActiveCell.Value=Textbox1.Value Then
Msgbox"CODIGO REPETIDO"
Textbox1.Value=Empty
Textbox1.SetFocus
Exit Do
End If
End If
ActiveCell.Offset(1,0).Select
Loop
Este código lo pones en el botón donde ejecutas el traslado de datos desde los Textbox a la hoja.
>Un saludo
>Julio
PD: Si te ha servido puntúa y finaliza la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas