Validación para evitar el ingreso de registros repetidos

En los formularios en los que ingreso datos para evitar el registro duplicado utilizo el siguiente código:

For Fila = 2 To Final
If Hoja8.Cells(Fila, 3) = Me.txt_NombreProducto.Text Then
MsgBox ("Producto ya existe en la Base de Datos"), vbExclamation, Titulo
LimpiarControles
Me.txt_NombreProducto.SetFocus
Exit Sub
Exit For
End If
Next

Ahora, hice un formulario en el que ingreso datos igualmente, pero en este caso no se registran en una columna (A por ejemplo), sino que se registran en una fila B1-C1-D1-E1... Etc, gracias al aporte de Abraham Valencia, el registro se da perfectamente. Pero necesito validar el ingreso de esos datos, para que los usuarios no dupliquen un ingreso, he tratado de modificar el código de arriba con el aporte de Abraham y no he podido conseguir un resultado óptimo. Agradezco la colaboración que puedan enviarle, el código que utilizo para el ingreso de datos aportado por Abraham es:

Sheets("Hoja1").Select
Let UltimaColumna = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(1, UltimaColumna + 1).Value = txt_Nombre

1 respuesta

Respuesta

Perdón, pero creo que podrías remplazar directamente tus instrucciones por algo similar a lo siguiente

Para buscar en la columna C

Application. WorksheetFunction. CountIf(Range("C:C"), Me.txt_NombreProducto.Text)

Para buscar en la fila 1

Application. WorksheetFunction. CountIf(Range("1:1"), Me.txt_NombreProducto.Text)

Esa función debería darte 0, en el caso que de un número mayor que 0 es porque estás por ingresar un valor que ya existe

Salu2

Hola, gracias por contestar. Al tomar el código de fila e insertarlo no puedo revisarlo porque me marca error, el texto se pone en rojo. El código que utilizo al validar los registros que se van ingresando, en el caso de estar el nombre del producto (TEXTO) muestra un mensaje que me alerta del duplicado. Así, el usuario sabe que ese producto específico, ya esta en el sistema. Lo mismo necesito hacer en el caso de la validación en los registros de la fila 1. Gracias.

Si te estoy entendiendo bien, los códigos que deberías poner son:

Para validar la columna C

If Application.WorksheetFunction.CountIf(Range("C:C"), Me.txt_NombreProducto.Text) > 0 
 Then
 MsgBox ("Producto ya existe en la Base de Datos"), vbExclamation, "Titulo"
 LimpiarControles
 Me.txt_NombreProducto.SetFocus
 Exit Sub
End If

y para validar la fila 1

If Application.WorksheetFunction.CountIf(Range("1:1"), Me.txt_NombreProducto.Text) > 0 
 Then
 MsgBox ("Producto ya existe en la Base de Datos"), vbExclamation, "Titulo"
 LimpiarControles
 Me.txt_NombreProducto.SetFocus
 Exit Sub
End If

Salu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas