Excel vba buscar fila con criterio y escribir dato en otra columna

No estoy pudiendo encontrar la forma de resolver este problema, soy nuevo con VBA.

Tengo una palabra seleccionada en un formulario, quiero buscar la coincidencia en la columna nombres de una tabla y al coincidir que cargue un valor en una columna especifica.

Si me pueden orientar en que metodología aplicar .

Datos:

selec = Me.nombcof.Text (nombre seleccionado para buscar, en un formulario)

Tabla en hoja "INFO" (B3:B100) la lista de nombres a comparar y si coincide con selec, en la misma línea pero columna G debe cargar un valor fijo "3"

1 Respuesta

Respuesta
2

Prueba lo siguiente:

Private Sub CommandButton1_Click()
  Dim sh As Worksheet
  Dim f As Range
  With nombcof
    If .Value = "" Then
      MsgBox "Captura un nombre"
      .SetFocus
      Exit Sub
    End If
    Set sh = Sheets("INFO")
    Set f = sh.Range("B3:B100").Find(.Value, , xlValues, xlWhole, , , False)
    If Not f Is Nothing Then
      sh.Range("G" & f.Row).Value = 3
    Else
      MsgBox "No existe"
    End If
  End With
End Sub

[Al final de la respuesta hay botón para valorar.

¡Gracias!  lo simplifique un poco ya que siempre tiene valor nombcof.

muchas gracias saludos

te consulto en esta parte, en lugar de el no existe al tener un valor que se sume al 3, como debería ser el else?

    If Not f Is Nothing Then
      sh.Range("G" & f.Row).Value = 3
    Else
      MsgBox "No existe"
    End If

No entiendo.

Si no existe, ¿quieres agregar un nuevo registro?

no , la situación es así: siempre existe un nombcof y va a coincidir si o si con 1 valor de B3:B100,

a la hora de escribir el "3" puede que esa celda ya tenga un valor , entonces seria si es cero pone de valor 3 , pero si ya tiene un valor suma este + 3


                    

Entonces cambia esta línea:

sh.Range("G" & f.Row).Value = 3

Por esta:

sh.Range("G" & f.Row).Value = sh.Range("G" & f.Row).Value + 3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas