Recherche et affichage des coordonnées d'une cellule en fonction de son contenu

Patmos

XLDnaute Nouveau
Bonjour,

Je n'arrive pas à trouver de solution à mon problème :

Je souhaite depuis une feuille faire une recherche d'un terme (mot, chiffre, mélange des deux) dans tout mon classeur.
Lorsque je trouve le terme cherché, je souhaite afficher dans un msgbox les coordonnées de la ceullule.

Tout cela fonctionne mais la recherche se cantonne à la feuille active et je n'arrive pas à résoudre ça.
En option par la suite, lancer cette macro depuis un autre classeur.

Voici mon code :
Code:
Sub Recherche()

Dim nomCherche, myCell As Object

Application.ScreenUpdating = False

On Error GoTo error


nomCherche = InputBox("Terme à rechercher : ")

    Cells.Find(What:=nomCherche, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate

MsgBox ("La recherche de" & " " & nomCherche & " " & "donne" & vbCrLf & _
    "Coordonnées de la cellule : " & ActiveCell.Address & _
    vbCrLf & "Nom de la feuille : " & ActiveSheet.Name)

Exit Sub


error:

MsgBox ("Une erreur improbable est survenue")

Exit Sub

End Sub



Merci pour vos conseils.
 

camarchepas

XLDnaute Barbatruc
Re : Recherche et affichage des coordonnées d'une cellule en fonction de son contenu

Bonjour Patmos ,

une solution possible pour un classeur pour le moment :

Code:
Option Explicit

Sub Recherche()
'Déclaration Variable et objets
 Dim NomCherche As String
 Dim Trouve As Range
 Dim Onglet As Worksheet

'Inhibe le rafraiche écran
 Application.ScreenUpdating = False
  'Acquisition du terme à chercher
   NomCherche = InputBox("Terme à rechercher : ")
  
  'Scrute l'ensemble des feuilles du classeur avec arrêt sur la 1° occurence
   For Each Onglet In ThisWorkbook.Worksheets
    'Charge l'objet cellule de retour
     Set Trouve = Onglet.Cells.Find(What:=NomCherche, LookIn:=xlValues, LookAt:=xlWhole, _
        SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    'Si terme trouvé alors fin et sortie de boucle
     If Not Trouve Is Nothing Then Exit For
   'Si autre onglet reprend la boucle
   Next Onglet

   'Si terme trouvé dans une des feuilles
   If Not Trouve Is Nothing Then
     MsgBox ("La recherche de" & " " & NomCherche & " " & "donne" & vbCrLf & _
      "Coordonnées de la cellule : " & Trouve.Address & _
       vbCrLf & "Nom de la feuille : " & Trouve.Worksheet.Name)
    Else
     'Si non trouvé
     MsgBox ("Une erreur improbable est survenue")
   End If
'Réactive le rafraiche écran
 Application.ScreenUpdating = True
End Sub
 

Patmos

XLDnaute Nouveau
Re : Recherche et affichage des coordonnées d'une cellule en fonction de son contenu

Merci camarchepas, ça marche très bien.

Tu devrais pendre cavamarcher comme pseudo non ?

Du coup je m'appuie sur ta macro pour pouvoir faire la même chose met à partir d'un autre classeur.
 

camarchepas

XLDnaute Barbatruc
Re : Recherche et affichage des coordonnées d'une cellule en fonction de son contenu

Patmos ,

pour t'orienter , regardes du coté de cette ligne :

For Each Onglet In ThisWorkbook.Worksheets


à modifier en :
Nomclasseur = "Exemple.xlsx"
For each onglet in workbooks(NomClasseur).worksheets
 

Discussions similaires

Statistiques des forums

Discussions
312 920
Messages
2 093 640
Membres
105 771
dernier inscrit
lorachab