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 wAutre problème, la ligne
For Each w In WorksheetsNe 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"), sDossierMerci beaucoup pour votre aide!!
Charles
Du coup c'est quand je ne cherche plus que je trouve..
xlApp.Worksheets(w.Name).ActivateOu encore mieux
w.ActivateActive 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.SheetsCordialement
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!