Recherche de mots sur plusieurs feuilles (VBA)

Bonjour,

Je suis débutant en VBA.

En adaptant un modèle trouvé sur internet, j'ai créé une petite macro pour rechercher un texte sur plusieurs feuilles.

  • Le premier problème est que la macro ne donne que la première cellule sur laquelle elle tombe et contenant le texte pour chaque feuille : Je voudrais avoir un message affichant toutes les cellules où on retrouve ce texte.
  • Le second problème est que les cordonnées de la cellule sont affichées avec des "$" (Exemple : $B$54) : Je voudrais qu'ils disparaissent pour plus de lisibilité.
  • Le dernier problème est que je voudrais que le texte soit cherché uniquement dans la colonne B de chaque feuille où figurent mes tableaux.

Voici le code de ma macro :

Sub ChercheTexte()

Dim MesFeuilles As Variant, Feuille As Worksheet
Dim rech As Range
Dim Montexte As String

Montexte = InputBox("Veuillez saisir le texte")

MesFeuilles = Array("Feuille1", "Feuille2", "Feuille3", "Feuille4")
For i = LBound(MesFeuilles) To UBound(MesFeuilles)
    Set Feuille = Sheets(MesFeuilles(i))

    Set rech = Feuille.Cells.Find(Montexte)
    If Not rech Is Nothing Then
        MsgBox ("J'ai trouvé le texte dans la cellule " & rech.Address & " de " & Feuille.Name)
    Else
        MsgBox ("Le texte n'est pas dans " & Feuille.Name)
    End If

Next i

End Sub

Pouvez-vous modifiez ma macro pour obtenir le résultat escompté ?

Merci d'avance,

Bonne soirée.

Bonjour et bienvenue sur ce forum,

Essayez votre code comme ceci

Sub ChercheTexte()
Dim mesFeuilles()
Dim feuille As Worksheet
Dim rech As Range
Dim montexte As String, prem As String, cel As String
Dim i As Byte

montexte = InputBox("Veuillez saisir le texte")
mesFeuilles = Array("Feuille1", "Feuille2", "Feuille3", "Feuille4")

For i = LBound(mesFeuilles) To UBound(mesFeuilles)
    Set feuille = Sheets(mesFeuilles(i))
    Set rech = feuille.Range("B:B").Find(montexte)

    If Not rech Is Nothing Then
        prem = rech.Address
        Do
            If cel = "" Then
                cel = rech.Address(0, 0)
            Else: cel = cel & " - " & rech.Address(0, 0)
            End If

            Set rech = feuille.Range("B:B").FindNext(rech)
        Loop While Not rech Is Nothing And rech.Address <> prem

        MsgBox "J'ai trouvé le texte dans la(es) cellule(s) " & cel & " de " & feuille.Name, , "Mot trouvé"
    End If

    cel = vbNullString
Next i
End Sub

Si ok et terminé mercide cloturer le fil

Cordialement

C'est parfait, merci beaucoup !

Rechercher des sujets similaires à "recherche mots feuilles vba"