VBA activer une feuille dont le nom figure dans une cellule

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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Réponses
7
Affichages
360

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson