EXCEL formulario con un campo que si existe en la hoja no se pueda insertar.

Estoy creando un formulario en excel, pero quiero que si los datos que introduzco en un texbox determinado están ya en la hoja excel me salga el mensaje que está repetido y no me deje continuar,

Si introduzco texto me funciona, pero quiero introducir números y no me funciona, se inserta.

Así lo he puesto en el codigo de formulario:

'Validar si se han ingresado datos duplicados
For i = 1 To fila
           If Cells(i, 2).Value = UserForm1.TextBox2.Value Then
               'Se encontraron datos duplicados
                MsgBox "Datos duplicados en la fila " & i
                duplicados = True
    End If

Next i
If Not duplicados Then
    'Insertar datos capturados
    Cells(fila, 2).Value = UserForm1.TextBox2.Value

1 respuesta

Respuesta
1

H O L A 

te paso la macro 

 Set h1 = Sheets("Hoja1")
    Set b = h1.Columns("B").Find(TextBox2, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "Ya existe"
        Exit Sub
    End If
    '
    u1 = h1.Range("B" & Rows.Count).End(xlUp).Row + 1
    H1. Cells(u1, "B") = TextBox2

cambias el nombre de la hoja por la tuya

Valora la respuesta para finalizar saludos!

Buenas noches,

Como le indicaba, es un formulario que al rellenarlo y pulsar en un botón si existe los datos introducidos en el "texbox2"  no me deja añadir datos y me aparece el mensaje de "YA EXISTE"

He añadido su macro y si existe me aparece el mensaje (arreglado)

Pero si no existe debería dejar introducir los datos, el depuradior se me para

ESTO ES LO QUE TENGO HASTA EL FINAL, SE ME PARA EN  LA PRIMERA INSERCCION,.

If Not duplicados Then
    'Insertar datos capturados
    Cells(fila, 1).Value = UserForm1.TextBox1.Value
    Cells(fila, 2).Value = UserForm1.TextBox2.Value
    Cells(fila, 3).Value = UserForm1.TextBox3.Value
    Cells(fila, 4).Value = UserForm1.TextBox4.Value
    Cells(fila, 5).Value = UserForm1.TextBox5.Value
    Cells(fila, 6).Value = UserForm1.TextBox6.Value
    Cells(fila, 7).Value = UserForm1.TextBox7.Value
    Cells(fila, 8).Value = UserForm1.TextBox8.Value
    Cells(fila, 9).Value = UserForm1.TextBox9.Value
    Cells(fila, 10).Value = UserForm1.TextBox10.Value
    'Limpiar cajas de texto
    UserForm1.TextBox1.Value = ""
    UserForm1.TextBox2.Value = ""
    UserForm1.TextBox3.Value = ""
    UserForm1.TextBox4.Value = ""
    UserForm1.TextBox5.Value = ""
    UserForm1.TextBox6.Value = ""
    UserForm1.TextBox7.Value = ""
    UserForm1.TextBox8.Value = ""
    UserForm1.TextBox9.Value = ""
    'Notificar al usuario
    MsgBox "Datos insertados en la fila " & fila
End If
End Sub

H o l a 

Te paso la macro actualizada

'Por Aortiz
 Set h1 = Sheets("Hoja1")
    Set b = h1.Columns("B").Find(TextBox2, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "Ya existe"
        Exit Sub
    End If
    '
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(u1, "A") = TextBox1
    h1.Cells(u1, "B") = TextBox2
    h1.Cells(u1, "C") = TextBox3
    h1.Cells(u1, "D") = TextBox4
    h1.Cells(u1, "E") = TextBox5
    h1.Cells(u1, "F") = TextBox6
    h1.Cells(u1, "G") = TextBox7
    h1.Cells(u1, "H") = TextBox8
    h1.Cells(u1, "I") = TextBox9
    UserForm1.TextBox1.Value = ""
    UserForm1.TextBox2.Value = ""
    UserForm1.TextBox3.Value = ""
    UserForm1.TextBox4.Value = ""
    UserForm1.TextBox5.Value = ""
    UserForm1.TextBox6.Value = ""
    UserForm1.TextBox7.Value = ""
    UserForm1.TextBox8.Value = ""
    UserForm1.TextBox9.Value = ""
    MsgBox "Datos insertados en la fila " & u1

Recuerda valora como Excelente o bueno saludos!

Le agregas el textbox10

h1.Cells(u1, "J") = TextBox10

Buenas tardes
Funciona perfectamente, la celda 10 no le agrego el texbox porque es un dato que me interesa que no varíe mientras meta datos en el formulario.

Muchísimas gracias, saludos desde España.

Pudieras cambiar la valoración y seguir aportando saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas