Buscar si existe el dato en la columna antes de registrar.

Para Dante Amor

Referente a la macro que me hiciste ayer, se me pasó comentarte que necesito que busque que la palabra no exista, antes de registrar en la col. A

Private Sub CommandButton1_Click()
  If TextBox1.Value = "" Then
    MsgBox "Captura el primer dato"
    TextBox1.SetFocus
    Exit Sub
  End If
  If TextBox2.Value = "" Then
    MsgBox "Captura el segundo dato"
    TextBox2.SetFocus
    Exit Sub
  End If
  '
  Dim letra As String
  letra = Left(TextBox1.Value, 1)
  If Evaluate("ISREF('" & letra & "'!A1)") Then
    Sheets(letra).Range("A" & Rows.Count).End(3)(2).Resize(1, 2).Value = Array(TextBox1.Value, TextBox2.Value)
  Else
    MsgBox "No existe una hoja con la letra : " & letra
  End If
End Sub

1 respuesta

Respuesta
3

Prueba lo siguiente:

Private Sub CommandButton1_Click()
  If TextBox1.Value = "" Then
    MsgBox "Captura el primer dato"
    TextBox1.SetFocus
    Exit Sub
  End If
  If TextBox2.Value = "" Then
    MsgBox "Captura el segundo dato"
    TextBox2.SetFocus
    Exit Sub
  End If
  '
  Dim letra As String
  Dim f As Range
  '
  letra = Left(TextBox1.Value, 1)
  If Evaluate("ISREF('" & letra & "'!A1)") Then
    With Sheets(letra)
      Set f = .Range("A:A").Find(TextBox1.Value, , xlValues, xlWhole, , , False)
      If f Is Nothing Then
        .Range("A" & Rows.Count).End(3)(2).Resize(1, 2).Value = Array(TextBox1.Value, TextBox2.Value)
      Else
        MsgBox "Ya existe la palabra: " & TextBox1.Value
        TextBox1.SetFocus
      End If
    End With
  Else
    MsgBox "No existe una hoja con la letra : " & letra
  End If
End Sub

¡Gracias!  Justo lo que necesitaba.

Otra vez con placer, gra cias por comentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas