Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2011, 22h46   #1
Invité de passage
 
Luc
Inscription : avril 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Luc

Informations forums :
Inscription : avril 2010
Messages : 9
Points : 2
Points : 2
Par défaut problème de copies de feuilles d'un classeur à l'autre

voilà, je voudrais copier des feuilles d'un classeur2 vers le classeur1. j'ai fait un bout de code mais ce code bugue à page moins 2. Cest à dire que si le classeur2 contient 37 feuilles, ça bugue au bout de la 35ème feuille. si le classeur contient 35 feuilles, le code plante à la 33ème feuille.

voilà mon code:
Code :
1
2
3
For Y = 1 To ActiveWorkbook.Worksheets.Count
If Workbooks(Classeur2).Sheets(Y).Name <> "impression" Then Workbooks(Classeur2).Sheets(Y).Copy Before:=Workbooks(Classeur1).Sheets(Y)
Next Y
les deux classeurs contiennent du code VBA et d'ailleurs, le classeur2 quand il est chargé, son code est lancé automatiquement; si ça peut aider à résondre le problème...

merci d'avance pour vos conseils, Luc.
mysterauto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 22h57   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Peut être (pas testé)
Code :
1
2
3
4
5
With Workbooks(Classeur2)
    For Y = 1 To .Worksheets.Count
        If .Sheets(Y).Name <> "impression" Then .Sheets(Y).Copy Before:=Workbooks(Classeur1).Sheets(1)
    Next Y
End With
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/11/2011, 23h49   #3
Invité de passage
 
Luc
Inscription : avril 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Luc

Informations forums :
Inscription : avril 2010
Messages : 9
Points : 2
Points : 2
Par défaut merci

merci, ca fonctionne mais si je peux me permettre, pourquoi sheets(1) au lieu de sheets(y) ?

ça me semblait plus logique (mon niveau VBA est d'environ 3/10)

merci encore.

ps: je ne trouve plus comment marquer le message "résolu"
mysterauto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 23h55   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
On boucle sur les feuilles de Classeur2 et en les copie tour à tour avant la feuille en position 1 de Classeur1

Supposons qu'au départ Classeur1 comporte une seule feuille A.
Pour Y=1:
On copie la première feuille de Classeur2 (B) avant la feuille A de Classeur1.
B devient la première feuille de Classeur1.

Pour Y=2:
On copie la deuxième feuille de Classeur2 (C) avant la feuille B de Classeur1.
C devient la première feuille de Classeur1.

...etc.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h50.


 
 
 
 
Partenaires

Hébergement Web