Macro que me busque un valor entre un rango y me sume 1 a una celda con un valor numérico

Quien me puede ayudar con una macro que pueda poner en una hoja de excel y que me busque un valor que capturo manual o por lector y si lo encuentra me sume el valor de 1 en la celda correspondiente del valor hallado y si no lo encuentra me salga un mensaje de código no existe: EJ

Me busque el valor de la celda A1 entre la columna B y si lo encuentra me sume 1 en la celda D1 y si no lo encuentra me muestre un aviso "código no encontrado"

Gracias

a                                    b           c                     d

{valor a buscar}        001   camisa               10

                                   005F  PANTALON        2

Respuesta
2

Visita mi canal:

Cursos de excel y macros

-------------

Prueba la siguiente macro:

Sub bucar_valor()
  Dim valor As Variant
  Dim f As Range
  '
  valor = Range("A1").Value
  If valor = "" Then
    MsgBox "Escribe el valor a buscar en la celda A1"
  Else
    Set f = Range("B:B").Find(valor, , xlValues, xlWhole, , , False)
    If Not f Is Nothing Then
      Range("D" & f.Row).Value = Range("D" & f.Row).Value + 1
    Else
      MsgBox "Valor no encontrado"
    End If
  End If
End Sub

----------

Te recomiendo los siguientes vídeos, ahí explico cómo utilizar el método Find:

Curso de macros. Metodo find completo. - YouTube

Curso de macros. Metodo find ejemplos. - YouTube

_________

Sal u dos Dante Amor

¡Gracias! Dante

Hola dante si me funciono, ¿pero puedo pedirte lago más? Como hago para que se ejecute automáticamente al dar enter o moverme de la celda A1 y después vuelva a quedar limpia la celda a! Y activa para seguir buscando otro dato... es que lo que quiero hacer es una especie de inventario con un lector de códigos.. gracias

Pon lo siguiente en los eventos de tu hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim valor As Variant
  Dim f As Range
  '
  If Target.Count > 1 Then Exit Sub
  If Target.Address(0, 0) = "A1" Then
    valor = Target.Value
    If valor = "" Then Exit Sub
    '
    Set f = Range("B:B").Find(valor, , xlValues, xlWhole, , , False)
    If Not f Is Nothing Then
      Range("D" & f.Row).Value = Range("D" & f.Row).Value + 1
    Else
      MsgBox "Código no encontrado"
    End If
  End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)

4. En el panel del lado derecho copia la macro

Regrese a excel, modifica la celda A1, en automático se ejecuta la macro.

----------------------

Recomendaciones:

Curso de macros. Consejos para empezar a programar. - YouTube

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas