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
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
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

la question iniatile était

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)
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
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
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 ?
:)
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour @dysorthographie

@Usine à gaz
Pour ma part, que le code VBA soit cristallin et sente la rose ou soit "long et certainement "tarabiscoté", je m'en tiendrai dans le cas présent à:

utiliser ma souris et faire :

Classeurs.png


NB: Dans un cadre professionnel, j'essaie d'avoir au grand max 5 classeurs ouverts en même temps.
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame