Macro recherche dans tout le classeur et MSGBOX

bonjour a tous,

j'ai trouvé un code sur internet et je voudrais modifier le contenue du msgbox .

au lieu de m'indiquer l'adresse de la colonne et la ligne ou se situe le mot que je recherche,

je voudrai qu'il m'indique le contenue de la cellule en colonne A c'est à dire la date qui se trouve sur la même ligne que la valeur rechercher .

a savoir que la colonne A est une fusion de plusieurs ligne .

le code :

Sub Rechercher()
Dim Sh As Worksheet
Dim c As Range
Dim Nom As String, firstAddress As String

Nom = InputBox("Nom à chercher dans toutes les feuilles", "Rechercher")
If Nom <> "" Then
    For Each Sh In ThisWorkbook.Worksheets
        Set c = Sh.Cells.Find(Nom, LookIn:=xlValues, Lookat:=xlWhole)
        If Not c Is Nothing Then
            Sh.Activate
            c.Select
            firstAddress = c.Address
            Do
                MsgBox Sh.Name & "!" & c.Address
                Set c = Sh.Cells.FindNext(c)
                c.Select
            Loop While Not c Is Nothing And c.Address <> firstAddress
            Set c = Nothing
        End If
    Next Sh
End If
Sheets("Feuil1").Select
End Sub
35recherche.xlsm (28.39 Ko)

merci pour votre aide .
cordialement.

Bonjour,

si je comprend bien, "c" représente la ou les cellules successives qui correspondent à la recherche. "c" est un objet Range, du coup quelque soit sa position en colonne, si vous voulez récupérer la valeur se trouvant en colonne A il suffit de récupérer la valeur de la cellule qui se trouve en colonne 1 et en ligne c.Row

Cells(c.Row,1).Value

@ bientôt

LouReeD

Bonjour,

Il faut en début de procédure :

Dim Ligne%

Dim RenvoiCell$

Dans ton if not

Ligne = c.row

RenvoiCell = Sh.Range("A" & Ligne).value

Dans to Do

Msgbox "Date : " & RenvoiCell & .......

Ce qui donne dans votre code :

MsgBox sh.Cells(c.Row,1).Value

@ bientôt

LouReeD

bonjour,

merci pour vos réponse .

LouReeD : j'ai rajouter ton code a mon code mais elle ne fonctionne pas car la date se situe en -5 et la cellule est la fusion de plusieurs ligne ( voir PJ)

43recherche.xlsm (28.39 Ko)

Oups...

Sub Rechercher()
Dim Sh As Worksheet
Dim c As Range, Cact As Range
Dim Nom As String, firstAddress As String

Nom = InputBox("Nom à chercher dans toutes les feuilles", "Rechercher")
If Nom <> "" Then
    For Each Sh In ThisWorkbook.Worksheets
        Set c = Sh.Cells.Find(Nom, LookIn:=xlValues, Lookat:=xlWhole)
        If Not c Is Nothing Then
            Sh.Activate
            c.Select
            firstAddress = c.Address
            Do
                Set Cact = Sh.Cells(c.Row, 1).MergeArea
                MsgBox Cact.Cells(1, 1).Value
                Set c = Sh.Cells.FindNext(c)
                c.Select
            Loop While Not c Is Nothing And c.Address <> firstAddress
            Set c = Nothing
        End If
    Next Sh
End If
Sheets("Feuil1").Select
End Sub

On sélectionne la première cellule de la zone fusionnée qui contient la cellule cherchée...

@ bientôt

LouReeD

Super merci , ça fonctionne .

Je suis content que cela vous convienne ! Merci pour vos remerciements.

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro recherche tout classeur msgbox"