Código para evitar ingresar datos repetidos desde un textbox y un userform

Como hago para cargar ese macro

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 Then
dato = Target.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(1), dato)
If contarsi > 1 Then
MsgBox "el dato ya existe no se permiten duplicados"
Target.Select
Target.ClearContents
Exit Sub
End If
End If
End Sub

Desde un userform, es decir, los datos de
código nombre cedula, se pasan desde textbox a las celdas, como hago
para que primero me cargue el código antes de pegar la información a las
celdas al darle clic a un botón...

3 Respuestas

Respuesta
9

Te mando mi solución sigue este ejemplo:

-Tomamos el campo código como campo clave para verificar si existen duplicados y estará en el textbox1.

-Con esta macro al pulsar el botón, verificamos si ya existe y si así fuera no permitimos duplicados.

(Los datos se anotan en hoja1 y el código corresponde a la columna A y los demás en las siguientes)

Private Sub CommandButton1_Click()
dato = TextBox1.Value
contarsi = Application.WorksheetFunction.CountIf(Sheets("hoja1").Columns(1), dato)
If contarsi > 1 Then
MsgBox "El código ya existe, no se permiten duplicados"
TextBox1.SetFocus
Exit Sub
End If
End Sub

no olvides finalizar la consulta

Respuesta
2

Después de buscar por varias horas, encontré el método correcto y preciso para la búsqueda de duplicados. Aquí les comparto una parte del código para os que os pueda servir. Gracias, y saludos.

'Registros es el nombre de mi hoja de excel, Columns(3) es mi columna C

'Insertar datos es mi método para guardar en caso de que no existan duplicados

Public Sub valida_Duplicados()
Dim dato As String
Dim contarsi As Long
dato = Me.txtNumero.Value
contarsi = Application.WorksheetFunction.CountIf(Sheets("Registros").Columns(3), dato)
If contarsi >= 1 Then
MsgBox "El competidor ya existe, no se permiten duplicados", , "Información"
txtNumero.SetFocus
txtNumero.Value = ""
Exit Sub
Else
insertar_datos
End If
End Sub

El crédito es de Luis Mondelo.

Respuesta
1

Buen código, me sirvió.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas