Copier Feuilles vers nouveaux classeurs

  • Initiateur de la discussion Initiateur de la discussion plasmadav
  • 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 !

P

plasmadav

Guest
Bonjour le forum,

Me revoila et encore un grand merci pour l'aide precedemment fournis.

Je reviens avec un clou sous le pied, je m'explique.

Je dois compiler plusieurs feuilles de plusieurs classeur vers un seul classeur !!!

Le code a toujours bien fonctionné jusque là, mais aujourd'hui non 😕

Voici le code :

PHP:
Sub ConvertirFichiersEnFeuilles()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook, WsFeuille As Worksheet
'Ouverture de plusieurs fichier au choix

Application.ScreenUpdating = False
VarListeFichiers = Application.GetOpenFilename(filefilter:="Classeurs eXceL,*.xls", Title:="Selectionner le dossier Stat Prestataire", MultiSelect:=True)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !": Exit Sub     'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final
'Transfert des fichiers vers le classeurs final
For Each VarFichier In VarListeFichiers
   Set WkClasseur = Workbooks.Open(Filename:=VarFichier)
   For Each WsFeuille In WkClasseur.Worksheets
       WsFeuille.Move before:=WkFinal.Worksheets(1)
   Next WsFeuille
   WkClasseur.Close savechanges:=False
Next VarFichier

gesterreur:
'classeur vide
If Err.Number = -2147221080 Then
Resume Next
End If
Exit Sub
Application.ScreenUpdating = True
End Sub

Problematique :

Toutes les feuilles ne se copient pas vers le classeurs finals

a savoir chaques classeurs comportent au minimum 150 feuilles.

Il y a t'il un nombre limite de feuilles a avoir dans un classeur😕 ????

Je ne peux vous fournir le fichier pour les fuzions trop lourd

Si quelqu'un peux m'aider la dessus

merci d'avance
 
Dernière modification par un modérateur:
Re : Copier Feuilles vers nouveaux classeurs

Ca marche !!!!!!!!!!!
J'ai placé un test au milieu de la copie qui stoppe l'itération toutes les 100 copies pour enregistrer et fermer le classeur de destination puis le rouvrir avant de reprendre les copies. Bon effectivement, c'est très lourd comme manip vu le volume de données mais il semble qu'il n'y ait pas 36 solutions ce pb...
Et contrairement à ce qui a été dit, la manipulation de classeurs de plusieurs centaines de feuilles est tout à fait gérable. Avec des macros "utiles" ça se fait très bien ;-)
A plus,

Séb
 
Re : Copier Feuilles vers nouveaux classeurs

cool ce que tu as trouvé ,

mais je ne saurais adapter la solution donnée par microsoft a mon code !!! 🙁🙁

Car je ne connais rien en vba toutes les macros que j'ai c'est grace au forum et surtout au gentil "dixit" qui m'a fait des trucs du feu de dieu.

Si quelqu'un pouvais adapter ma macro avec les recommendations de microsoft se serait genial

merci
 
Re : Copier Feuilles vers nouveaux classeurs

bonjour,

A la recherche d'une ame charitable qui me modifierais ma requete avec le recommandation de windows.

1/ SEBCB1 ca marche de ton coté ou le probleme subsiste malgres tout ?

merci
 
Re : Copier Feuilles vers nouveaux classeurs

Bonjour Plasmadav,

Désolé de ne pas t'avoir aidé plus tôt, je vais tâcher de te décrire le plus simplement ce que j'ai fait !
Comme je l'expliquais dans mon précédent post, la solution donnée par Microsoft consiste à enregistrer et fermer son classeur en cours de copie, puis de le rouvrir et poursuivre la copie.

Mon programme se présente de la façon suivante :
- Classeur source : "creation_catalogue.xls"
- Classeur de destination : "catalogue_client.xls"
La boucle qui pose problème vise à créer le catalogue client à partir du fichier de création.
Dans mon classeur "catalogue_client", il y a une feuille type que je duplique à chaque nouvelle itération dans ce même classeur, et où sont ensuite collées les données issues du classeur "creation_catalogue".
Le problème survient lors de la duplication de cette feuille puisque cette opération s'arrête brutalement après un certain nombre de copies.

Pour résoudre ce problème, j'ai modifié ma boucle de la façon suivante :

'Déclaration des variables
Dim p as Integer 'compteur
Dim N as Integer 'Nombre de feuilles

For p = 1 to N

'On rajoute un test pour fermer le classeur et le rouvrir toutes les 100 copies
If p Mod 100 = 0 then
Workbooks("catalogue_client.xls").Save
Workbooks("catalogue_client.xls").Close
Workbooks("creation_catalogue.xls").Activate 'Je réactive juste le classeur source
ChDir ThisWorkbook.Path 'Sélection du répertoire du catalogue client (ici c'est le même que le classeur "creation_catalogue")
Workbooks.Open Filename := "catalogue_client.xls" 'Et on rouvre...
End If

'Ici tu fais tes opérations habituelles
blablabla

Next p

J'espère avoir été clair ! Et d'ailleurs, même si le principe de ton programme n'est pas le même que le mien, l'introduction de ce petit test dans ta boucle de copie doit résoudre ton problème car il ne s'agit que d'une simple fermeture/réouverture, totalement indépendant du contenu du programme.
Tiens-moi au courant de tes essais!

Séb.
 
- 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
9
Affichages
830
D
Réponses
2
Affichages
1 K
Dafaka7
D
L
Réponses
1
Affichages
1 K
Ludwig74
L
Retour