XL 2010 Recherche objet saisi dans un userform

OUIZEMANN

XLDnaute Junior
Bonjour à tous,
J'ai besoin de votre aide pour solutionner ma problématique (les sujets similaires sur le forum ne répondent malheureusement pas à ma question).
Je cherche via un userform, à rechercher le moyen d'activer la feuille où se trouve le nom de l'objet recherché.
Dans l'exemple en pièce jointe, si je recherche "USA", je veux visualiser la feuille où se trouve le nom de l'objet "USA" parmi toutes les feuilles (dans cet exemple il faut que la feuille 8 s'active).
La macro que j'ai bâti ne fonctionne pas.
Je penses qu'il faut créer une boucle.
Merci par avance.
 

Pièces jointes

  • TROUVER OBJET.xlsm
    29.8 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonsoir.
Comme ça :
VB:
Private Sub CommandButton1_Click()
Dim Nom As String, Wsh As Worksheet, Shp As Shape
Nom = TextBox2 ' OBJET RECHERCHE
On Error Resume Next
For Each Wsh In ThisWorkbook.Worksheets
   Err.Clear: Set Shp = Wsh.Shapes(Nom): If Err = 0 Then Exit For
   Next Wsh
If Shp Is Nothing Then MsgBox "OBJET NON TROUVE": Exit Sub
Wsh.Activate
End Sub
 
C

Compte Supprimé 979

Guest
Bonjour Ouizemann, salut Dranreb ;)
Une autre façon de procéder
VB:
Private Sub CommandButton1_Click()
  Dim Sht As Worksheet
  Dim Shp As Shape
  Dim ObjCherché As String
  ' Récupérer le nom de l'objet à trouver
  ObjCherché = Me.TextBox2.Value
  ' Pour chaque feuille
  For Each Sht In ThisWorkbook.Sheets
    ' Pour chaque objet de la feuille
    For Each Shp In Sht.Shapes
      ' Vérifier si l'objet chercher s'y trouve
      If Shp.Name = ObjCherché Then
        Sht.Activate
        Exit Sub
      End If
    Next Shp
  Next Sht
  ' Si on se trouve ici, c'est que l'objet cherché n'a pas été trouvé
  MsgBox "OBJET NON TROUVE"
End Sub

A+
 

Pièces jointes

  • Ouizeman_TROUVER OBJET.xlsm
    28.9 KB · Affichages: 16

Discussions similaires

Réponses
36
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972