Encontrar cuatro o más valores de textbox en una fila

Tengo por ejemplo:

Textbox1

Textbox2

Textbox3

Textbox4

Y en una hoja

A       B      C      C

A        B      C      D

B        C       C     D

C        D        E     F

Ahoar bien, en los textbox digito estos valores:

Textbox1 = A

Textbox2 = B

Textbox3= C

Textbox4 = D

Poder generar una alerta que indique al momento de hacer click en un botón:

"Los datos ingresados ya existen en alguna fila"

Y si no están los 4 en el orden indicado:

"Los datos no existen en niguna fila"

Respuesta
1

Creo que no te estoy entendiendo. Hablas de celdas o de textbox, porque si son textbox no entiendo a que te refieres con que están en filas.
Sería de utilidad una captura de pantalla.

Hola, los textbox tendrán la información que se guardara en las filas de la hoja, por eso debe revisar que no haya ya una fila con los valores que se desean guardar contenidos en los textbox, es buscar duplicados por así decirlo

¿Cada textbox se corresponde con una columna no?

Podrias hacer un recorrido con un while y luego 4 ifs para hacer la comprobacion.

Si los datos empiezan en la celda A1 por ejemplo podrias hacer

Sub duplicados()

dim R as range

dim Duplicado as bolean

set R=range(A1)

duplicado=false

While not R.value=empty and not Duplicado

if R.value=textbox1.value then

if R.offset(0,1).value=textbox2.value then

if R.offset(0,2).value=textbox3.value then

if R.offset(0,3).value=textbox4.value then

duplicado=true

Endif

Endif

Endif

Endif

Wend

if duplicado then

msgbox("esos valores ya existen")

else

msgbox("se puede añadir la fila")

Endif

Endsub

Se puede hacer más elegante, pero si son 4 textbox contados creo que te podría servir así.

Gracias, la variable Dim Duplicado As bolean me tira error" no se ha definido el tipo definido por el usuario"

Disculpa, fallo mío, es boolean con dos "o" 

Hola, podrías revisar, los valores comienzan en la columna B, la columna A no la debe tomar en cuenta, no obstante se queda enciclado. Gracias

Public Sub Validar_repetidos_guardar3()


Dim R As Range

Dim Duplicado As Boolean

Sheets("Productos").Select
If IsNumeric(ComboBox1.Value) Then dato2 = val(ComboBox1.Value) Else dato2 = ComboBox1.Value 'Categoría
If IsNumeric(TextBox2.Value) Then dato3 = val(TextBox2.Value) Else dato3 = TextBox2.Value 'Producto
If IsNumeric(ComboBox2.Value) Then dato4 = val(ComboBox2.Value) Else dato4 = ComboBox2.Value 'Marca
If IsNumeric(TextBox5.Value) Then dato5 = val(TextBox5.Value) Else dato5 = TextBox5.Value 'Detalle
If IsNumeric(TextBox6.Value) Then dato6 = val(TextBox6.Value) Else dato6 = TextBox6.Value 'Unidad de medida
If IsNumeric(ComboBox3.Value) Then dato7 = val(ComboBox3.Value) Else dato7 = ComboBox3.Value 'Medida
dato10 = Format(Trim(TextBox11.Value), "GENERAL NUMBER") / 100 'IV%
dato6 = val(TextBox6.Value)
'****************************************************************
Set R = Range("B1")

Duplicado = False

While Not R.Value = Empty And Not Duplicado

If R.Value = dato2 Then

If R.Offset(0, 3).Value = dato3 Then

If R.Offset(0, 4).Value = dato4 Then

If R.Offset(0, 5).Value = dato5 Then

If R.Offset(0, 6).Value = dato6 Then

If R.Offset(0, 7).Value = dato7 Then


Duplicado = True

End If

End If

End If

End If

End If

End If


Wend

If Duplicado Then

Var_Rep = 0

Else

Var_Rep = 1

End If
End Sub

En la línea antes del wend falta un

set R=R.offset(1,0)

Para que salte a la siguiente fila

Mea culpa😅

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas