Recherche Cellule dans tout le classeur

Bonjour

Ceci est mon 1er message, merci pour votre accueil!

J'ai recherché sur le forum, mais je trouve rien pour mon problème particulier qui est de trouver la feuille.

Je fais une macro SOLIDWORK qui est compatible avec Excel.

Je souhaiterai que le fichier s'ouvre sur une case qui contient une valeur prédéfinit.

La macro effectue une recherche sur toutes les feuilles (le résultat n'a qu'une seul position possible)

La macro sélectionne la cellule qui contient cette valeur.

Mon problème est que la fonction Cells.Find ne me donne que l'adresse de la cellule, mais pas le nom de la feuille.

Je ne sais pas comment connaitre le nom de la feuille sur laquelle se trouve cette valeur. Pour que la macro nous y amène.

Voici mon code partiellement:

Dim w As Worksheet
For Each w In Worksheets 'recherche dans toutes les feuilles
Set result = w.Cells.Find(pRef, , LookAt:=xlWhole)
If Not result Is Nothing Then
        FirstAddress = result.Address 'Recupère l'adresse de la cellule trouvée
         Do
FirstAddress = result.Address

xlApp.Worksheets(sshee).Activate 'active la page( que j'ai prédéfinis du coup)
Range(FirstAddress).Select 'selectionne la cellule trouvée
Loop While Not result Is Nothing And result.Address <> FirstAddress
    End If
Next w

Autre problème, la ligne

For Each w In Worksheets

Ne marche qu'une foi sur 2. Etrange non?

Ainsi que cet autre ligne, qui ajoute un lien Hypertexte à une cellule (dont la valeur lui ai attribué plus tot dans la macro)

ne marche qu'une seul foi sur 2.

xlWB.Worksheets(u).Hyperlinks.Add Sheets(u).Cells(j, "H"), sDossier

Merci beaucoup pour votre aide!!

Charles

Du coup c'est quand je ne cherche plus que je trouve..

xlApp.Worksheets(w.Name).Activate

Ou encore mieux

w.Activate

Active la feuille en question..

Merci quand même!

Par contre si vous savez pourquoi les lignes précédente ne marche qu'une seul fois sur 2, vos avis sont la bienvenue.

Merci beaucoup.

Bonjour

essaie

For Each w In ActiveWorkbook.Sheets

Cordialement

Bonjour

Oui en effet, cela fonctionne très bien.

C'est un ptit peu différent car Excel est piloté par une macro SolidWorks

For Each w In xlWB.Worksheets

Set result = w.Cells.Find(pRef, , LookAt:=xlWhole)

If Not result Is Nothing Then

FirstAddress = result.Address

Do

FirstAddress = result.Address

w.Activate

xlApp.ActiveSheet.Range(FirstAddress).Select

Loop While Not result Is Nothing And result.Address <> FirstAddress

End If

Next w

End If

Ainsi que pour l'hyperlien

xlApp.ActiveSheet.Hyperlinks.Add xlApp.ActiveSheet.Cells(j, "H"), sDossier 'donne le lien hypertexte a la case H

sachant que:

Set xlApp = New Excel.Application

xlApp.Visible = True

Set xlWB = xlApp.Workbooks.Open("Z:\...\CODIFICATION DES PLANS.xls")

Merci beaucoup!

Rechercher des sujets similaires à "recherche tout classeur"