Buscar una palabra en una fila y ver cuantas veces se repite vba excel

Estimados tengo un problema, tengo una fila donde tengo varios datos, deseo buscar la palabra Rocoto y luego decirme en un msgbox el nombre de la columna donde esta y continuar buscando la misma palabra hasta que ya no aparezca más.

Ejemplo la palabra Rocoto de repite 3 veces, busco y en cada msgbox pongo el numero de columna, osea me saldrían 3 msgbox diciéndome eso. Alguna ayuda expertos.

2 respuestas

Respuesta
2

Puede subir una imagen de sus datos para una idea más precisa de lo que necesita.

¡Gracias! Amigo no se preocupe ya encontré mi duda yo mismo je je

Acá la respuesta

Dim BusquedaNext As Range
Dim firstAddress As String, ColumnasJuntas As String
Dim Data As String
Dim Conteo As Integer
With Range("10:10")
     Set BusquedaNext = .Find("Rocoto", LookIn:=xlValues)
     If Not BusquedaNext Is Nothing Then
        firstAddress = BusquedaNext.Address
        Do
            Conteo = Conteo + 1
            Data = Data & "," & BusquedaNext.Column
            Set BusquedaNext = .FindNext(BusquedaNext)
        If BusquedaNext Is Nothing Then
            GoTo DoneFinding
        End If
        Loop While BusquedaNext.Address <> firstAddress
      End If
DoneFinding:
End With
If Conteo > 0 Then MsgBox Right(Data, Len(Data) - 1)
ColumnasJuntas = Right(Data, Len(Data) - 1)

Si les sirve bacan

Bien me da gusto que haya resuelto su pregunta.

Hice un ejemplo donde busca en la fila 2 de la columna A hasta la columna F

Sub BuscarcConVentanaEmergente()
mensaje = InputBox("Escriba la palabra a buscar", "Título")
Valor = mensaje
    For i = 1 To 6
        If Valor = Cells(2, i).Value Then
            Col = Cells((2), i).Address
                MsgBox Valor & " Columna: " & Col
        End If
    Next i
End Sub
Respuesta
2

G r a c i a s por compartir el código.

Aquí otro ejemplo para considerar

Sub test2()
  Dim c As Range, Data As String
  For Each c In Rows(10).SpecialCells(xlCellTypeConstants)
    If c.Value Like "*Rocoto*" Then Data = Data & c.Column & ", "
  Next
  If Data <> "" Then MsgBox Left(Data, Len(Data) - 2)
End Sub

Gracias Dante, una consulta Como haría para poder transformar este procedimiento en una Function llamada BuscadorPlus para poder buscar no solo rocoto sino otras palabras.

Donde solo ponga BuscadorPlus("*Rocoto*", 10) algo así 10 es la fila


                    

Pon el siguiente código en un módulo:

Function BuscadorPlus(texto As String, fila As Long) As String
  Dim c As Range, Data As String
  For Each c In Rows(fila).SpecialCells(xlCellTypeConstants)
    If LCase(c.Value) Like LCase(texto) Then Data = Data & c.Column & ", "
  Next
  If Data <> "" Then BuscadorPlus = Left(Data, Len(Data) - 2)
End Function

Y utiliza la función como una fórmula de excel:

=BuscadorPlus("*rocoto*",10)

¡Gracias! Dante, no se si me podría apoyar con otra pregunta esta ailada con esta misma de igual forma tbm lo estoy intentando. Me gustaría hacerlo así con llamadas de funciones o sub con argumentos para poder entender más esa forma de hacer códigos y aprender y crear mis propios códigos. Gracias.

Comparar el dato inicial con los siguientes Datos en Excel VBA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas