Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA activer une feuille dont le nom figure dans une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

y.nachef

XLDnaute Nouveau
Bonjour tout le monde,

je voudrais savoir SVP ce qui cloche avec mon bout de code

Code:
Dim wb As Workbook
                   Dim ws As worksheet
                                  
                   For Each wb In Workbooks
If wb.Name Like "*500*" Then
wb.Activate


                                     ActiveWindow.ActivateNext

         For Each ws In ActiveWorkbook.Sheets
                   If ws.Name Like wb.ActiveCell.Value Then
                   ws.Activate
                   
                   End If
                        Next
End If
Next


le code devrait permettre d'activer un fichier dont le nom contient "500" et d'activer une feuille dans un autre fichier (d'où le "ActiveWindow.ActivateNext"), le nom de cette feuille ressemble à la cellule selectionnée dans le premier fichier


en lançant la macro, j'ai un message d'erreur "propriété ou méthode non gérée par cet objet"

auriez vous des suggestions SVP?

Merci par avance
 
Re : VBA activer une feuille dont le nom figure dans une cellule

Bonsoir Nachef, bonsoir le forum,

Peut-être comme ça :

Code:
Sub Macro1()
Dim C1 As Workbook 'déclare la variable C1 (Classeur 1)
Dim NO As String 'déclare la variable NO (Nom d'Onglet)
Dim C2 As Workbook 'déclare la variable C2 (Classeur 2)
Dim O As Object 'déclare la variable O (Onglets)

For Each C1 In Workbooks 'boucle 1 : sur tous les classeurs ouverts
    If C1.Name Like "*500*" Then 'condition : si le nom du classeur contient "500"
        C1.Activate 'active le classeur
        NO = ActiveCell.Value 'définit la variable NO
        ActiveWindow.ActivateNext 'sélectionne le classeur ouvert suivant
        Set C2 = ActiveWorkbook 'définit le classeur C2
        For Each O In C2.Sheets 'boucle 2 : sur tous les onglets du classeur C2
            'si le nom de l'onglet est égal à la variable NO, sélectionne l'onglet, sort de la procédure
            If O.Name Like NO Then O.Activate: Exit Sub
        Next O 'prochain onglet de la boucle 2
    End If 'fin de la condition
Next C1 'prochain classeur ouvert de la boucle 1
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
371
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
441
Réponses
4
Affichages
395
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…