regrouper +rs classeurs ds 1 classeur

  • Initiateur de la discussion Initiateur de la discussion andrea
  • Date de début Date de début

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 !

A

andrea

Guest
Bonjour à tous et à toutes

Voici mon code pour regrouper plusieurs classeurs en 1 classeur

Windows('Classeur1').Activate
ActiveWindow.WindowState = xlNormal
With ActiveWindow
.Top = 2.5
.Left = 340.75
End With
With ActiveWindow
.Width = 410.25
.Height = 389.25
End With
Windows('Classeur2').Activate
ActiveWindow.WindowState = xlNormal
With ActiveWindow
.Width = 370.5
.Height = 389.25
End With
Sheets('bul').Select
Application.CutCopyMode = False
Sheets('bul').Move After:=Workbooks('Classeur1').Sheets(1)
Windows('Classeur3').Activate
ActiveWindow.WindowState = xlNormal
With ActiveWindow
.Width = 378.75
.Height = 389.25
End With
Sheets('bul').Select
Sheets('bul').Move After:=Workbooks('Classeur1').Sheets(2)
Windows('Classeur4').Activate
ActiveWindow.WindowState = xlNormal
With ActiveWindow
.Width = 370.5
.Height = 389.25
End With
Sheets('bul').Select
Application.CutCopyMode = False
Sheets('bul').Move After:=Workbooks('Classeur1').Sheets(1)

End Sub

j'aimerai que ce code s'adapte quelque soit le nombre de classeurs ouverts et quelque soit leurs noms
Est ce possible????????

Merci pour l'aide apportée
 
Bonjour Andréa

Le premier classeur que tu ouvres, tu peux le sélectionner en faisant workbooks('MonClasseur').activate
Tu peux le faire aussi par : workbooks(1).activate

l'instruction worbooks.count te permet de connaitre le nombre de classeur ouvert
Apres avoir activé un classeur, l'instruction sheets.count te donnera le nombre de feuille de ce classeur

En faisant des boucles imbriquées tu devrait arriver à t'en sortir

Par ex :
- on ouvre en premier (classeur qui aura l'indice 1) le classeur qui doit contenir toutes les autres feuilles des autres classeurs que tu vas ouvrir et qui porteront l(indice 2,3 ->workbooks.count)
- on active le classeur 2
- on fait une boucle sur son nombre de feuille et on les déplace en dernier dans worbooks(1)
- on active le classeur 3
- on refait la même boucle sur les sheets que pour le classeur 2
- ... et ainsi de suite jusqu'au classeur n

!!! vérifier que lorsqu'on a déplacé une feuille d'un classeur dans un autre, la variable sheets(workbooks(n).count de ce classeur ne se décrémente pas puisque son nombre de feuille a changé

J'espère t'avoir mis sur la bonne voie. Cette solution fonctionnera, même si nous sommes le 1er avril
Bye
Bertrand
 
Bonjour Bertrand et merci
En remplaçant par workbooks(1) ...ça fonctionne
Pour les autres instructions ,je ne suis pas assez calée mais comme mon classeur final ne doit avoir que 4 pages c'est ok
Merci encore
Andrea
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
586
Réponses
7
Affichages
1 K
Réponses
11
Affichages
846
J
Réponses
22
Affichages
3 K
jui42
J
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
1 K
Retour