Réunir plusieurs fichiers EXCEL dans 1 seul
Résolu/Fermé
Bonjour,
j'ai un soucis Sur Excel.
Voila, j'ai Soixante fichiers excel de forme identique avec 5 à 6 onglets toujours de forme identique. (Ne demandez pas pourquoi c'est pour le TAF)
Ces fichiers ne se trouvent pas forcément dans le même dossier et ne sont pas en nombre identiques
Exemple:
DossierA : Dossier1,dossier2,dossier3,dossier4.....
Dossier1 : Exel1
Dossier2 : Excel2,Excel3
Dossier3 : Excel4,Excel5,Excel6
Dossier4 : Excel7,Excel8
Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine)
That is your challenge !!! Good Luck
PS : Je suis débutant en Macro, essayez d'expliquer simplement ou de me donner la macro entière.
j'ai un soucis Sur Excel.
Voila, j'ai Soixante fichiers excel de forme identique avec 5 à 6 onglets toujours de forme identique. (Ne demandez pas pourquoi c'est pour le TAF)
Ces fichiers ne se trouvent pas forcément dans le même dossier et ne sont pas en nombre identiques
Exemple:
DossierA : Dossier1,dossier2,dossier3,dossier4.....
Dossier1 : Exel1
Dossier2 : Excel2,Excel3
Dossier3 : Excel4,Excel5,Excel6
Dossier4 : Excel7,Excel8
Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine)
That is your challenge !!! Good Luck
PS : Je suis débutant en Macro, essayez d'expliquer simplement ou de me donner la macro entière.
A voir également:
- Copier plusieurs fichiers excel dans un seul
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
22 réponses
Bonjour ts le monde, svp j'ai besoin de la macro qui permet de concatener les fichiers excel qui ont la même structure
c super urgent. d'avance merci
c super urgent. d'avance merci
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
6 mars 2008 à 21:54
6 mars 2008 à 21:54
bonjour ttjeremy,
Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine)
That is your challenge !!! Good Luck
Bon comme personne ne se précipite sur ta question, je relève le "challenge".
Dans ce fichier, je t'ai mis un classeur prêt à fonctionner et le module macro que tu peux importer dans ton classeur :
https://www.cjoint.com/?dgvPyWen8b
Tu peux sélectionner ton "DossierA" et tous les classeurs de tous les sous répertoires seront concaténés avec le chemin du fichier d'origine, l'onglet d'origine, le nombre de lignes et le nombre de colonnes.
Si tu dépasses le nombre de lignes maximum de la feuille, on passe sur une nouvelle feuille.
Si tes fichiers ont des plages ou des fonctions avec le même nom, il y a un message excel pour le signaler à chaque double et il faut renommer pour que ton classeur fonctionne.
Essaies d'abord sur un petit dossier pour voir le fonctionnement et bon test.
Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine)
That is your challenge !!! Good Luck
Bon comme personne ne se précipite sur ta question, je relève le "challenge".
Dans ce fichier, je t'ai mis un classeur prêt à fonctionner et le module macro que tu peux importer dans ton classeur :
https://www.cjoint.com/?dgvPyWen8b
Tu peux sélectionner ton "DossierA" et tous les classeurs de tous les sous répertoires seront concaténés avec le chemin du fichier d'origine, l'onglet d'origine, le nombre de lignes et le nombre de colonnes.
Si tu dépasses le nombre de lignes maximum de la feuille, on passe sur une nouvelle feuille.
Si tes fichiers ont des plages ou des fonctions avec le même nom, il y a un message excel pour le signaler à chaque double et il faut renommer pour que ton classeur fonctionne.
Essaies d'abord sur un petit dossier pour voir le fonctionnement et bon test.
Bonjour,
Je suis très satisfait de la macro. Je vous en suit reconnaissant.
J'ai tout de même un petit soucis.
Dans chaque fichier, j'ai oublié de mentionné qu'il y avait deux onglets qui ne devait pas faire partir de cette liste.
Pour chaque fichier, il y a une page de garde que l'on imprime pour faire signer des vérificateurs.
Il y a aussi un glossaire.
Ces deux onglets s'intitulent "P de Garde" et "Définition des colonnes"
Connaissez-vous un moyen de ne pas les mettre dans le "Global_classeur"?
Merci d'avance et en core merci pour la macro.
Cordialement,
Ttjeremy
Je suis très satisfait de la macro. Je vous en suit reconnaissant.
J'ai tout de même un petit soucis.
Dans chaque fichier, j'ai oublié de mentionné qu'il y avait deux onglets qui ne devait pas faire partir de cette liste.
Pour chaque fichier, il y a une page de garde que l'on imprime pour faire signer des vérificateurs.
Il y a aussi un glossaire.
Ces deux onglets s'intitulent "P de Garde" et "Définition des colonnes"
Connaissez-vous un moyen de ne pas les mettre dans le "Global_classeur"?
Merci d'avance et en core merci pour la macro.
Cordialement,
Ttjeremy
Bonjour
Ayant le même problème que 'ttjeremy' je tenais juste a demander le code pour voir si ça va marcher dans mon cas, j'ai essayé de le récupérer de l'adresse https://www.cjoint.com/?dgvPyWen8b mais on me dit que l'adresse est introuvable
Merci d'avance
Ayant le même problème que 'ttjeremy' je tenais juste a demander le code pour voir si ça va marcher dans mon cas, j'ai essayé de le récupérer de l'adresse https://www.cjoint.com/?dgvPyWen8b mais on me dit que l'adresse est introuvable
Merci d'avance
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
>
rourouriri
6 mai 2008 à 21:53
6 mai 2008 à 21:53
rourouriri
Messages postés
23
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
4 juin 2009
2
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
7 mai 2008 à 09:39
7 mai 2008 à 09:39
Bonjour,
Merci pour votre aide mais a vrai dire c'est pas ce que je cherche exactement, si tu veux, ce que je souhaite avoir à la fin est en fait 3 feuilles (par exemple) dans un seul classeur c'est à dire avoir à la fin 3 feuilles (feuil1, feuil2, feuil3) dans un même classeur, si tu sais quoi que se soit informe moi parce que j'ai vraiment besoin de ce code
Merci encore pour le code que tu m'as fillée
Merci pour votre aide mais a vrai dire c'est pas ce que je cherche exactement, si tu veux, ce que je souhaite avoir à la fin est en fait 3 feuilles (par exemple) dans un seul classeur c'est à dire avoir à la fin 3 feuilles (feuil1, feuil2, feuil3) dans un même classeur, si tu sais quoi que se soit informe moi parce que j'ai vraiment besoin de ce code
Merci encore pour le code que tu m'as fillée
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
10 mars 2008 à 11:43
10 mars 2008 à 11:43
bonjour
Dans chaque fichier, j'ai oublié de mentionné qu'il y avait deux onglets qui ne devait pas faire partir de cette liste.
Connaissez-vous un moyen de ne pas les mettre dans le "Global_classeur"?
Il y a toujours des exceptions pour tout traitement alors autant les mettre en paramètre.
J'ai mis cette ligne dans la macro et il suffit de rajouter d'autres feuilles pour les exclure éventuellement :
Le classeur corrigé est ici : https://www.cjoint.com/?dklLFvOwSp
Dans chaque fichier, j'ai oublié de mentionné qu'il y avait deux onglets qui ne devait pas faire partir de cette liste.
Connaissez-vous un moyen de ne pas les mettre dans le "Global_classeur"?
Il y a toujours des exceptions pour tout traitement alors autant les mettre en paramètre.
J'ai mis cette ligne dans la macro et il suffit de rajouter d'autres feuilles pour les exclure éventuellement :
exclus = Array("P de Garde", "Définition des colonnes")
Le classeur corrigé est ici : https://www.cjoint.com/?dklLFvOwSp
Re bonjour,
La macro est presque parfaite.
Après l'exécution, il me reste quelques manip à faire mais comparé au temps que vous m'avez fait gagner, cela ne représente rien.
Je vous remercie beaucoup. Heureusement qu'il y a des personnes comme vous pour faire avancer le chmilblick.
Encore Merci.
Cordialement,
Ttjérémy
La macro est presque parfaite.
Après l'exécution, il me reste quelques manip à faire mais comparé au temps que vous m'avez fait gagner, cela ne représente rien.
Je vous remercie beaucoup. Heureusement qu'il y a des personnes comme vous pour faire avancer le chmilblick.
Encore Merci.
Cordialement,
Ttjérémy
marcus53
Messages postés
1
Date d'inscription
mercredi 9 janvier 2013
Statut
Membre
Dernière intervention
9 janvier 2013
9 janv. 2013 à 15:05
9 janv. 2013 à 15:05
Bonjour, la macro m'interesse mais elle n'est plus en ligne. Peux-tu y remédier ?
merci
merci
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
14 mars 2008 à 10:02
14 mars 2008 à 10:02
bonjour
N'as-tu pas un fichier sans données ?
Comme l'on saute les 2 premières lignes maintenant...
Essaies de changer cette ligne
S'il y a une erreur tu verras où elle se produit.
N'as-tu pas un fichier sans données ?
Comme l'on saute les 2 premières lignes maintenant...
Essaies de changer cette ligne
On Error GoTo fin par 'On Error GoTo fin
S'il y a une erreur tu verras où elle se produit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jokeystar
Messages postés
4
Date d'inscription
mardi 21 avril 2009
Statut
Membre
Dernière intervention
4 mai 2009
1
4 mai 2009 à 12:45
4 mai 2009 à 12:45
bonjour j'ai le mémé soucis que (Réunir plusieurs fichiers EXCEL dans 1 seul
ttjeremy, le mercredi 5 mars 2008 à 11:36:57) mais j'ai pas trouvé le fichier sur le lien. ça sera gentille de me le filé merciii
ttjeremy, le mercredi 5 mars 2008 à 11:36:57) mais j'ai pas trouvé le fichier sur le lien. ça sera gentille de me le filé merciii
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
10 mars 2008 à 18:12
10 mars 2008 à 18:12
bonjour
Après l'exécution, il me reste quelques manip à faire
Si tu me dis en quoi elles consistent, elles peuvent peut-être être intégrées facilement.
Selon le style de classeur, le résultat est parfois différent.
Après l'exécution, il me reste quelques manip à faire
Si tu me dis en quoi elles consistent, elles peuvent peut-être être intégrées facilement.
Selon le style de classeur, le résultat est parfois différent.
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
11 mars 2008 à 18:25
11 mars 2008 à 18:25
Bonjour,
Les quelques petits soucis concernent simplement toutes les lignes vides qui s'incorporent dans le fichier "Global classeur"
Si tu veux que je sois encore plus précis sur mon besoin,
le fichier global devrait :
- copier les deux premières lignes qu'une seule fois (normal, il s'agit de la légende des colonnes).
- comporter une colonne supplémentaire avec comme info le nom du fichier d'origine ainsi que l'onglet pour chaque ligne. (Si possible, 1ere colonne)
Pour synthétiser, tous les fichiers groupés dans le "global classeur" doivent ne former qu'un seul fichier avec leur provenance (traçabilité) qui servira à centraliser les informations pour mieux les traiter par la suite.
Pour moi travailler,
il est préférable que je puisse lire les informations sur un seul fichier. J'ai en tout 11000 lignes à gérer a terme. la provenance de l'information est importante pour gagner du temps.
Par la suite, si j'avais des liens hypertexte sur cette provenance, ce serait le ponpon.
Si tu penses pouvoir faire tout cela, je laisse libre court a ton ingénieusité, mais je te rassures, tu en as déjà fait beaucoup pour moi.
Les quelques petits soucis concernent simplement toutes les lignes vides qui s'incorporent dans le fichier "Global classeur"
Si tu veux que je sois encore plus précis sur mon besoin,
le fichier global devrait :
- copier les deux premières lignes qu'une seule fois (normal, il s'agit de la légende des colonnes).
- comporter une colonne supplémentaire avec comme info le nom du fichier d'origine ainsi que l'onglet pour chaque ligne. (Si possible, 1ere colonne)
Pour synthétiser, tous les fichiers groupés dans le "global classeur" doivent ne former qu'un seul fichier avec leur provenance (traçabilité) qui servira à centraliser les informations pour mieux les traiter par la suite.
Pour moi travailler,
il est préférable que je puisse lire les informations sur un seul fichier. J'ai en tout 11000 lignes à gérer a terme. la provenance de l'information est importante pour gagner du temps.
Par la suite, si j'avais des liens hypertexte sur cette provenance, ce serait le ponpon.
Si tu penses pouvoir faire tout cela, je laisse libre court a ton ingénieusité, mais je te rassures, tu en as déjà fait beaucoup pour moi.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
11 mars 2008 à 18:55
11 mars 2008 à 18:55
bonjour
Ce n'est pas tout à fait ce qui était dans le sujet initial mais c'est normal que le projet évolue en fonction des résultats obtenus.
Il me manque quelques réponses encore :
- y a-t-il lieu de copier les formats de fond, de couleurs et autres ?
- le nom du fichier d'origine est-il simplement le nom du classeur ?
- doit-on tenir compte du chemin complet ou simplement du relatif par rapport au global ?
- le nom de l'onglet sur la colonne B n'est-ce pas mieux ?
- le lien hypertexte serait sur la première colonne ?
- y-a-t-il des formules dans les classeurs ?
- y-a-t-il des zones nommées dans les classeurs ?
Cela permettra d'adapter le code à ta problématique.
Je suppose que tu crées un nouveau classeur à chaque fois, faut-il initialiser totalement le classeur ?
Ce n'est pas tout à fait ce qui était dans le sujet initial mais c'est normal que le projet évolue en fonction des résultats obtenus.
Il me manque quelques réponses encore :
- y a-t-il lieu de copier les formats de fond, de couleurs et autres ?
- le nom du fichier d'origine est-il simplement le nom du classeur ?
- doit-on tenir compte du chemin complet ou simplement du relatif par rapport au global ?
- le nom de l'onglet sur la colonne B n'est-ce pas mieux ?
- le lien hypertexte serait sur la première colonne ?
- y-a-t-il des formules dans les classeurs ?
- y-a-t-il des zones nommées dans les classeurs ?
Cela permettra d'adapter le code à ta problématique.
Je suppose que tu crées un nouveau classeur à chaque fois, faut-il initialiser totalement le classeur ?
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
12 mars 2008 à 10:21
12 mars 2008 à 10:21
Bonjour,
Il me manque quelques réponses encore :
- y a-t-il lieu de copier les formats de fond, de couleurs et autres ? Il faut garder au minimum les couleurs des lignes et les formules.
- le nom du fichier d'origine est-il simplement le nom du classeur ? Oui tout simplement
- doit-on tenir compte du chemin complet ou simplement du relatif par rapport au global ? Le relatif par rapport au global est suffisant
- le nom de l'onglet sur la colonne B n'est-ce pas mieux ? Cela n'a pas d'importantce
- le lien hypertexte serait sur la première colonne ? Pourquoi pas, ça peut être une bonne idée
- y-a-t-il des formules dans les classeurs ? oui tout à fait, elles sont d'ailleurs importantes.
- y-a-t-il des zones nommées dans les classeurs ? Non
J'espère avoir répondu correctement à tes questions.
Merci de m'aider.
Cordialement,
Ttjeremy
Il me manque quelques réponses encore :
- y a-t-il lieu de copier les formats de fond, de couleurs et autres ? Il faut garder au minimum les couleurs des lignes et les formules.
- le nom du fichier d'origine est-il simplement le nom du classeur ? Oui tout simplement
- doit-on tenir compte du chemin complet ou simplement du relatif par rapport au global ? Le relatif par rapport au global est suffisant
- le nom de l'onglet sur la colonne B n'est-ce pas mieux ? Cela n'a pas d'importantce
- le lien hypertexte serait sur la première colonne ? Pourquoi pas, ça peut être une bonne idée
- y-a-t-il des formules dans les classeurs ? oui tout à fait, elles sont d'ailleurs importantes.
- y-a-t-il des zones nommées dans les classeurs ? Non
J'espère avoir répondu correctement à tes questions.
Merci de m'aider.
Cordialement,
Ttjeremy
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
13 mars 2008 à 20:41
13 mars 2008 à 20:41
bonjour
Merci de la précision des réponses et tu peux essayer cette version : https://www.cjoint.com/?dnuJh6bpkj
Le lien hypertexte est mis sur la première ligne de l'onglet afin de ne pas surcharger la première colonne mais il est possible de le recopier facilement.
Merci de la précision des réponses et tu peux essayer cette version : https://www.cjoint.com/?dnuJh6bpkj
Le lien hypertexte est mis sur la première ligne de l'onglet afin de ne pas surcharger la première colonne mais il est possible de le recopier facilement.
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
14 mars 2008 à 09:39
14 mars 2008 à 09:39
Bonjour,
Les différentes collonnes rajoutées fonctionnent mais par rapport à la version d'avant, il y a un gros soucis.
La macro ne copie que 16 fichiers sur 30.
Je ne sais pas pourquoi.
Cordialement,
Ttjeremy
Les différentes collonnes rajoutées fonctionnent mais par rapport à la version d'avant, il y a un gros soucis.
La macro ne copie que 16 fichiers sur 30.
Je ne sais pas pourquoi.
Cordialement,
Ttjeremy
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
14 mars 2008 à 10:19
14 mars 2008 à 10:19
Voici le message d'erreur :
Erreur d'execution '1004'
Impossible de coller les informations car les Zones copier et de collage sont de forme et de taille différentes. Essayez l'unes des opérations suivantes :
- Cliquez sur une cellule puis collez
- Sélectionnez une Zone rectangulaire de taille et de forme identiques à celles des informations puis collez.
En faisant débogage, il y a une ligne de la macro qui se surligne en jaune.
Cells(l, 1).Resize(nbl, c).Copy Destination:=Wf.Cells(ligne, 2)
Erreur d'execution '1004'
Impossible de coller les informations car les Zones copier et de collage sont de forme et de taille différentes. Essayez l'unes des opérations suivantes :
- Cliquez sur une cellule puis collez
- Sélectionnez une Zone rectangulaire de taille et de forme identiques à celles des informations puis collez.
En faisant débogage, il y a une ligne de la macro qui se surligne en jaune.
Cells(l, 1).Resize(nbl, c).Copy Destination:=Wf.Cells(ligne, 2)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
14 mars 2008 à 10:35
14 mars 2008 à 10:35
bonjour
Je viens d'essayer avec une feuille vide et cela fonctionne.
Peux-tu regarder la feuille concernée car elle doit être enregistrée en fin de fichier et voir les particularités.
La ligne concernée copie les données sur une seule cellule destinataire et tu ne devrais pas avoir ce message.
As-tu démarré ta concaténation sur une feuille vide ?
Je viens d'essayer avec une feuille vide et cela fonctionne.
Peux-tu regarder la feuille concernée car elle doit être enregistrée en fin de fichier et voir les particularités.
La ligne concernée copie les données sur une seule cellule destinataire et tu ne devrais pas avoir ce message.
As-tu démarré ta concaténation sur une feuille vide ?
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
14 mars 2008 à 11:13
14 mars 2008 à 11:13
C'est bon,
J'ai ré-enregistré le fichier. tout va bien.
Par contre il y a toujours les lignes vides qui se mettent dans le "global classeur"
J'ai ré-enregistré le fichier. tout va bien.
Par contre il y a toujours les lignes vides qui se mettent dans le "global classeur"
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
14 mars 2008 à 14:10
14 mars 2008 à 14:10
bonjour
En fait cela venait que ton classeur était censé utiliser 256 colonnes et pour les mettre dans 255 : problème.
Cela vient de la propriété usedrange qui est bien utile mais ne donne pas toujours des résultats adéquats.
C'est corrigé ainsi que les lignes vides qui venaient du même problème. S'il en reste vérifies qu'il n'y ait pas des espaces dans une cellule : https://www.cjoint.com/?dooeWnJHZw
Bon test et bon courage !
En fait cela venait que ton classeur était censé utiliser 256 colonnes et pour les mettre dans 255 : problème.
Cela vient de la propriété usedrange qui est bien utile mais ne donne pas toujours des résultats adéquats.
C'est corrigé ainsi que les lignes vides qui venaient du même problème. S'il en reste vérifies qu'il n'y ait pas des espaces dans une cellule : https://www.cjoint.com/?dooeWnJHZw
Bon test et bon courage !
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
18 mars 2008 à 10:38
18 mars 2008 à 10:38
Bonjour,
J'ai effectué le Test.
Les lignes vignes n'ont pas disparus mais il faut que je vérifie si elles ne contiennent pas d'espaces.
Merci pour ton aide.
Cordialement,
Ttjeremy.
J'ai effectué le Test.
Les lignes vignes n'ont pas disparus mais il faut que je vérifie si elles ne contiennent pas d'espaces.
Merci pour ton aide.
Cordialement,
Ttjeremy.
Bonjour,
Je ne sais pas si c'est possible mais j'aimerais compiler dans une seule feuilles des données qui sont dans 2 feuilles différentes mais que j'ai réuni dans un seul fichier.
Au départ, je me suis demandée s'il ne fallait pas créer un TCD, mais je pense qu'une macro serait plus conseillée. Je pourrais être amenée à changer les feuilles 2 et 3(tout en gardant la même disposition de colonnes !) à cause de différentes mise à jour que je doive effectuées sur une base de données, je ferai alors une extraction de cette base sous excel et donc amenée à enregistrer cette nouvelle base de données dans le classeur correspondant à la place des feuilles 2 et 3.
Dans un premier temps, il faudrait que je puisse faire apparaître dans une feuille 1 toutes les données de la feuille 2 (19 colonnes et nombre de lignes variables en fonction de la mise à jour) et compiler les données de la feuille 3 (6 colonnes et nombre de lignes différentes de la feuille2), en fonction des critères de la feuille 2 : colonne B, C et S. Il peut arriver qu'en fonction du numéro dans la colonne S, un doublon de nom prénom se forme en colonne B et C. Il faut donc qu'une nouvelle ligne se forme.
Je suis nulle en macro et je demanderai donc à celui qui voudra bien me renseigner de me donner le chemin à suivre, pas à pas...
En vous remerciant par avance, bon courage...
Je ne sais pas si c'est possible mais j'aimerais compiler dans une seule feuilles des données qui sont dans 2 feuilles différentes mais que j'ai réuni dans un seul fichier.
Au départ, je me suis demandée s'il ne fallait pas créer un TCD, mais je pense qu'une macro serait plus conseillée. Je pourrais être amenée à changer les feuilles 2 et 3(tout en gardant la même disposition de colonnes !) à cause de différentes mise à jour que je doive effectuées sur une base de données, je ferai alors une extraction de cette base sous excel et donc amenée à enregistrer cette nouvelle base de données dans le classeur correspondant à la place des feuilles 2 et 3.
Dans un premier temps, il faudrait que je puisse faire apparaître dans une feuille 1 toutes les données de la feuille 2 (19 colonnes et nombre de lignes variables en fonction de la mise à jour) et compiler les données de la feuille 3 (6 colonnes et nombre de lignes différentes de la feuille2), en fonction des critères de la feuille 2 : colonne B, C et S. Il peut arriver qu'en fonction du numéro dans la colonne S, un doublon de nom prénom se forme en colonne B et C. Il faut donc qu'une nouvelle ligne se forme.
Je suis nulle en macro et je demanderai donc à celui qui voudra bien me renseigner de me donner le chemin à suivre, pas à pas...
En vous remerciant par avance, bon courage...
ttjeremy
Messages postés
12
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
1 novembre 2008
15 avril 2008 à 15:37
15 avril 2008 à 15:37
Bonjour,
Si tu suis l'historique des conversations, tu pourras y trouver une macro qui réalisera ton souhait.
Tu pourras ainsi remercier son créateur.
Si tu suis l'historique des conversations, tu pourras y trouver une macro qui réalisera ton souhait.
Tu pourras ainsi remercier son créateur.
DelphineG
Messages postés
1
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
30 mai 2008
30 mai 2008 à 15:46
30 mai 2008 à 15:46
Bonjour,
J'ai un fichier Excel comportant environ 40 onglets de paramétrage et j'aimerais obtenir un autre fichier Excel comportant toutes les donnees de mes 40 onglets. Je n'y connais rien en macro et mais il me semble que le programme de gbinforme pourrait faire ça aussi mais je n'arrive pas à le trouver.
Ce serait vraiement super ! Ca m'eviterais de faire chaque semaine les 40 copier-coller et surtout de ne plus oublier d'inserer un onglet. Après c'est trop la galère
Merci d'avance pour votre aide,
Cordialement,
Delphine
J'ai un fichier Excel comportant environ 40 onglets de paramétrage et j'aimerais obtenir un autre fichier Excel comportant toutes les donnees de mes 40 onglets. Je n'y connais rien en macro et mais il me semble que le programme de gbinforme pourrait faire ça aussi mais je n'arrive pas à le trouver.
Ce serait vraiement super ! Ca m'eviterais de faire chaque semaine les 40 copier-coller et surtout de ne plus oublier d'inserer un onglet. Après c'est trop la galère
Merci d'avance pour votre aide,
Cordialement,
Delphine
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
30 mai 2008 à 23:03
30 mai 2008 à 23:03
bonjour DelphineG,
il me semble que le programme de gbinforme pourrait faire ça aussi
Ce n'est pas du tout le même problème car la macro concernée était destinée à globaliser un répertoire pour faire une analyse des données.
En ce qui te concerne, c'est plus simple puisque tu n'as qu'un seul classeur avec plusieurs onglets et donc la procédure n'a rien à voir.
Ton nouveau classeur comporte combien d'onglets ?
Le collage de chaque onglet se fait-il à la suite du précédent sur le même onglet ?
Tes données ont-elles des plages nommées ?
As-tu des formules ou uniquement des données saisies ?
Si tu explique un peu plus précisément, cela devrait être réalisable.
il me semble que le programme de gbinforme pourrait faire ça aussi
Ce n'est pas du tout le même problème car la macro concernée était destinée à globaliser un répertoire pour faire une analyse des données.
En ce qui te concerne, c'est plus simple puisque tu n'as qu'un seul classeur avec plusieurs onglets et donc la procédure n'a rien à voir.
Ton nouveau classeur comporte combien d'onglets ?
Le collage de chaque onglet se fait-il à la suite du précédent sur le même onglet ?
Tes données ont-elles des plages nommées ?
As-tu des formules ou uniquement des données saisies ?
Si tu explique un peu plus précisément, cela devrait être réalisable.
J'ai le même souci pour réunir plusieurs fichiers excel dans un seul. Mais j'arrive à accéder aux leins précédemment utiliser. Est ce quelqu'un peut m'nvoyer le code.
Merci d'avance.
Merci d'avance.
rourouriri
Messages postés
23
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
4 juin 2009
2
6 juin 2008 à 15:14
6 juin 2008 à 15:14
bonjour,
je sais pas si c'est ce code là qui te faut mais je te le fille au cas ou
Sub FusionDsFeuille()
Dim NbCol As Integer, NbLine As Long, NbLine1 As Long
Dim Wbk As Workbook, Wbk1 As Workbook
'Recherche du classeur 1 parmi tous les classeurs ouverts :
For Each Wbk In Workbooks
'Recherche du bout de nom toujours identique du classeur 1
If InStr(Wbk.Name, "salut") Then
'Ou recherche du nom complet si le nom complet est toujours identique
'if Wbk.name="Export Base X.xls" then
'On le nomme
Set Wbk1 = Wbk
'On compte le nombre de lignes de la feuille 1 du classeur 1
'En imaginant que c'est bien cette feuille sur laquelle on travaille
NbLine1 = Wbk1.Worksheets(1).Cells(6, 1).End(xlUp).Row
'On sort de la boucle si on a trouvé
Exit For
End If
Next Wbk
'Recherche du classeur 2 et 3 (dans n'importe quel ordre a priori) parmi tous les claseurs ouverts :
For Each Wbk In Workbooks
'Recherche du bout de nom toujours identique
If InStr(Wbk.Name, "coucou") Or InStr(Wbk.Name, "psss") Then
'Ou recherche du nom complet si le nom complet est toujours identique
'if Wbk.name="Export Base Y.xls" or Wbk.name="Export Base Z.xls" then
'Pas la peine de le nommer.. c'est le 2 ou le 3 au choix
'On compte le nombre de colonnes en se basant sur la ligne 1 (si ligne 1 = ligne en-tête
'sinon, adapter)
NbCol = Wbk.Worksheets(1).Cells(1, 4).End(xlToLeft).Column
'On compte le nombre de lignes en se basant sur la colonne 1 (si colonne 1 non vide
'sinon, adapter)
NbLine = Wbk.Worksheets(1).Cells(6, 1).End(xlUp).Row
'Copie du bloc à partir de la ligne 2 (donc sans les en-tetes) + collage sur la dernière ligne + 1 de la feuille 1 du classeur 1
Range(Wbk.Worksheets(1).Cells(2, 1), Wbk.Worksheets(1).Cells(NbLine, NbCol)).Copy Wbk1.Worksheets(1).Cells(NbLine1 + 1, 1)
'On incrémente le nombre de lignes total de la feuille 1 du classeur 1
NbLine1 = NbLine1 + NbLine
'On ne sort pas de la boucle car il faut faire les 2 classeur
'Facultatif : On ferme le fichier
'Wbk.Close
End If
Next Wbk
End Sub
je sais pas si c'est ce code là qui te faut mais je te le fille au cas ou
Sub FusionDsFeuille()
Dim NbCol As Integer, NbLine As Long, NbLine1 As Long
Dim Wbk As Workbook, Wbk1 As Workbook
'Recherche du classeur 1 parmi tous les classeurs ouverts :
For Each Wbk In Workbooks
'Recherche du bout de nom toujours identique du classeur 1
If InStr(Wbk.Name, "salut") Then
'Ou recherche du nom complet si le nom complet est toujours identique
'if Wbk.name="Export Base X.xls" then
'On le nomme
Set Wbk1 = Wbk
'On compte le nombre de lignes de la feuille 1 du classeur 1
'En imaginant que c'est bien cette feuille sur laquelle on travaille
NbLine1 = Wbk1.Worksheets(1).Cells(6, 1).End(xlUp).Row
'On sort de la boucle si on a trouvé
Exit For
End If
Next Wbk
'Recherche du classeur 2 et 3 (dans n'importe quel ordre a priori) parmi tous les claseurs ouverts :
For Each Wbk In Workbooks
'Recherche du bout de nom toujours identique
If InStr(Wbk.Name, "coucou") Or InStr(Wbk.Name, "psss") Then
'Ou recherche du nom complet si le nom complet est toujours identique
'if Wbk.name="Export Base Y.xls" or Wbk.name="Export Base Z.xls" then
'Pas la peine de le nommer.. c'est le 2 ou le 3 au choix
'On compte le nombre de colonnes en se basant sur la ligne 1 (si ligne 1 = ligne en-tête
'sinon, adapter)
NbCol = Wbk.Worksheets(1).Cells(1, 4).End(xlToLeft).Column
'On compte le nombre de lignes en se basant sur la colonne 1 (si colonne 1 non vide
'sinon, adapter)
NbLine = Wbk.Worksheets(1).Cells(6, 1).End(xlUp).Row
'Copie du bloc à partir de la ligne 2 (donc sans les en-tetes) + collage sur la dernière ligne + 1 de la feuille 1 du classeur 1
Range(Wbk.Worksheets(1).Cells(2, 1), Wbk.Worksheets(1).Cells(NbLine, NbCol)).Copy Wbk1.Worksheets(1).Cells(NbLine1 + 1, 1)
'On incrémente le nombre de lignes total de la feuille 1 du classeur 1
NbLine1 = NbLine1 + NbLine
'On ne sort pas de la boucle car il faut faire les 2 classeur
'Facultatif : On ferme le fichier
'Wbk.Close
End If
Next Wbk
End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
4 mai 2009 à 19:06
4 mai 2009 à 19:06
bonjour
Si tu regardes le poste 30 tu as bien un classeur.
Si tu regardes le poste 30 tu as bien un classeur.
Bonjour,
j'ai téléchargé le fichier du poste 30 et je suis plutôt impressionné.
Par contre, je n'ai pas l'impression que c'est la dernière version de ce qui avait été proposé étant donné que les titres de colonnes se répètent à l'importation des données. Est-ce qu'il serait possible de remettre le dernier fichier en ligne? Et autre chose, ou est ce qu'on peut paramétrer le fait de vouloir compiler les données sur différentes feuilles plutôt que tout sur une seule? (bon, là j'en demande peut etre beaucoup, on parle d'un fichier crée il y a 2 ans)
j'ai téléchargé le fichier du poste 30 et je suis plutôt impressionné.
Par contre, je n'ai pas l'impression que c'est la dernière version de ce qui avait été proposé étant donné que les titres de colonnes se répètent à l'importation des données. Est-ce qu'il serait possible de remettre le dernier fichier en ligne? Et autre chose, ou est ce qu'on peut paramétrer le fait de vouloir compiler les données sur différentes feuilles plutôt que tout sur une seule? (bon, là j'en demande peut etre beaucoup, on parle d'un fichier crée il y a 2 ans)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
22 juil. 2010 à 12:29
22 juil. 2010 à 12:29
Bonjour,
Tout est possible, et le code est totalement accessible et modifiable.
Pour supprimer les titres il y a un paramètre à changer et pour changer de feuille à chaque fichier la modification est très simple mais il ne faut pas oublier que le nombre de feuilles n'est pas illimité.
Tu as 2 autres versions ici et là
Si tu n'as pas ton bonheur, précises les modifications que tu veux.
Tout est possible, et le code est totalement accessible et modifiable.
Pour supprimer les titres il y a un paramètre à changer et pour changer de feuille à chaque fichier la modification est très simple mais il ne faut pas oublier que le nombre de feuilles n'est pas illimité.
Tu as 2 autres versions ici et là
Si tu n'as pas ton bonheur, précises les modifications que tu veux.
Compiler des fichiers ferméS dans un même répertoire:
Sub compil()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Dim rsdata As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim videderniereligne As String
Dim derniereligne As String
Dim U As Object
Dim feuille As String
Dim i As Integer
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
Direction = Dir(ThisWorkbook.Path & "\*.xls")
'Direction = Dir(cheminarchivelocal & "*.xls")
Cells.Select
Range("P1").Activate
Selection.ClearContents
Selection.Delete Shift:=xlUp
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
For X = 1 To nbFichiers
'derniereligne = Worksheets("Feuil1").Range("A5").Rows.Count
If Tableau(X) <> ThisWorkbook.Name Then
'[reportdetailleAZF20070831.xls]Feuil1!$A$2
feuille$ = "zer3_PHA (4)"
'repertoire = "D:\Archivefacturedetc\reportdetaille"
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & Tableau(X) & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes; IMEX=1"";"
'"Data Source=" & ThisWorkbook.Path & "\" & Tableau(X) & ";" & _
szSQL = "SELECT * FROM [" & feuille & "$]"
Set rsdata = New ADODB.Recordset
rsdata.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
''' Vérifie qu'on a bien reçu des données
If Not rsdata.EOF Then
Sheets("Feuil1").Select
If Range("A1").Value = "" Then
Sheets("Feuil1").Range("A1").CopyFromRecordset rsdata
Else:
derniereligne = Worksheets("Feuil1").Range("A3").End(xlDown).Row
videderniereligne = derniereligne + 1
Sheets("Feuil1").Range("A" & videderniereligne).CopyFromRecordset rsdata
End If
End If
End If
Next
Sub compil()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String
Dim rsdata As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim videderniereligne As String
Dim derniereligne As String
Dim U As Object
Dim feuille As String
Dim i As Integer
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
Direction = Dir(ThisWorkbook.Path & "\*.xls")
'Direction = Dir(cheminarchivelocal & "*.xls")
Cells.Select
Range("P1").Activate
Selection.ClearContents
Selection.Delete Shift:=xlUp
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
If nbFichiers > 0 Then
For X = 1 To nbFichiers
'derniereligne = Worksheets("Feuil1").Range("A5").Rows.Count
If Tableau(X) <> ThisWorkbook.Name Then
'[reportdetailleAZF20070831.xls]Feuil1!$A$2
feuille$ = "zer3_PHA (4)"
'repertoire = "D:\Archivefacturedetc\reportdetaille"
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & Tableau(X) & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes; IMEX=1"";"
'"Data Source=" & ThisWorkbook.Path & "\" & Tableau(X) & ";" & _
szSQL = "SELECT * FROM [" & feuille & "$]"
Set rsdata = New ADODB.Recordset
rsdata.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
''' Vérifie qu'on a bien reçu des données
If Not rsdata.EOF Then
Sheets("Feuil1").Select
If Range("A1").Value = "" Then
Sheets("Feuil1").Range("A1").CopyFromRecordset rsdata
Else:
derniereligne = Worksheets("Feuil1").Range("A3").End(xlDown).Row
videderniereligne = derniereligne + 1
Sheets("Feuil1").Range("A" & videderniereligne).CopyFromRecordset rsdata
End If
End If
End If
Next
12 sept. 2008 à 01:04
Pour les reste les liens ci-dessus ne fonctionnent pas du tous