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

XL 2021 Activer classeurs ouverts

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous de bon dimanche matin lol

Je bute sur un code que je ne parviens par à écrire malgré des tentatives et recherches.
Alors, une fois encore, je me tourne vers nos chers ténors....

Voici mon besoin :
J'ai plusieurs classeurs ouverts : classeur A - classeur B - classeur C
Mon classeur actif est le A
Je voudrais activer le B ou le C

Je n'y arrive pas Grrr !!!

Auriez-vous le bon codes ?
Grand mercie à toutes et à tous...
Et Bon dimanche,
 

Staple1600

XLDnaute Barbatruc
Bonjour @Usine à gaz , le fil

[moue dubitative de bon matin itou]
Tentatives et recherches...
[/moue dubitative de bon matin itou]

Pourtant en une seule tentative (avec l'enregistreur de macros)
Code:
Sub Macro1()
Windows("Classeur1").Activate
Windows("Classeur2").Activate
End Sub
C'est déjà un point de départ, non ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
En poursuivant, on testera donc
Sub Activer_Classeur2()
Windows("Classeur2").Activate
End Sub

Sub Activer_Classeur3()
Windows("Classeur3").Activate
End Sub

Les tests ici étaient sur des classeurs non enregistrés

Pour des classeurs enregistrés et ouverts, il suffit d'ajouter l'extension
Ce qui donnerait par exemple
Enrichi (BBcode):
Sub Activer_ClasseurB()
Windows("classeur B.xlsx").Activate
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour JM
Merci pour ton retour.
Pour moi pas facile, j'ai pourtant beaucoup cherché...

J'ai plusieurs classeurs qui peuvent être ouverts :
- Windows("isitelImmobRdV ImenNF2.xlsm").Activate
- Windows("isitelImmobRdV SondaNF2.xlsm").Activate
- Windows("isitelImmobRdV StephanieNF2.xlsm").Activate

Ne faut-il pas tester si les fichiers sont ouverts ?
 

Staple1600

XLDnaute Barbatruc
Re

la question iniatile était
Mon classeur actif est le A
Je voudrais activer le B ou le C
Donc 3 classeurs ouverts

Si il y a N classeurs ouverts, alors il faut faire une boucle

On peut aussi faire simplement Affichage/Changer de de fenêtre
et cliquer alors sur un classeur qui apparait dans la liste des classeurs ouverts

(C'est d'ailleurs ce que j'ai fait pour obtenir mon code VBA avec l'enregistreur de macros)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-JM
En fait, je l'ai eu avec
On Error Resume Next
Windows("isitelImmobRdV ImenNF2.xlsm").Activate
Windows("isitelImmobRdV SondaNF2.xlsm").Activate
Windows("isitelImmobRdV StephanieNF2.xlsm").Activate
 

Staple1600

XLDnaute Barbatruc
Re

Donc pour se compliquer la vie (*)
(alors que Affichage/Changer de fenêtre fait la chose facilement)
Code:
Sub Choisir_dans_Classeurs_ouverts()
Dim tmp$, Activation_W$, WBK As Workbook
For Each WBK In Application.Workbooks
    tmp = tmp & WBK.Name & vbCr
Next
Activation_W = _
            Application.InputBox("Choisir un classeur en saisissant son nom:" _
            & vbCr & tmp, "Activation", "", 2)
On Error Resume Next
Workbooks(Activation_W).Activate
End Sub

(*) Bah, oui, il faut saisir le nom de classeur
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci encore JM,
Je vais garder précieusement ton code.

Celui que je fais est particulière long et certainement "tarabiscoté" (amateur que je suis)
Tu vas certainement arracher les yeux du "pseudo machin truc" que je ne suis pas.

Mais peut-être voudras-tu me corriger ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…