Menu

Remplir un fichier Excel à partir d'autres fichiers Excels [Fermé]

- - Dernière réponse : FOT.02
Messages postés
68
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
9 avril 2019
- 17 déc. 2016 à 19:29
Bonjour,

Voici mon problème :
J'ai 15 fichiers (mis à jour par d'autres personnes) comportant des données que j'aimerais regrouper en 1 seul (sans avoir à faire copier coller tous les jours). Dans chacun de ces fichiers, les 2 premières lignes sont la même entête, et les colonnes sont les mêmes.
Il faudrait donc que j'arrive à prendre les lignes 3 à XXXX de chacun des 15 fichiers pour les rassembler dans un autre.

Les 15 Fichiers sont dans un dossier fixe, le nom des fichiers change tous les mois, mais si besoin il sera possible d'avoir des noms fixes.

Je voudrais donc savoir comment faire pour que, en un clic, je puisse avoir mes 15 tableaux réunis en un ?

Merci d'avance pour vos réponses :)


Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
15841
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mai 2019
2729
3
Merci
Bonjour

Comme promis "à la encore fraiche"

http://cjoint.com/?3FgjvVu8wA9

Tu dis.... :o)

nota: pour fonctionner, il faut dézipper et non ouvrir directement le zip

Edit: erreur de chargement zip rectifiée.... 9:22h
Michel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 39945 internautes nous ont dit merci ce mois-ci

ilhemGh
Messages postés
1
Date d'inscription
vendredi 12 août 2016
Statut
Membre
Dernière intervention
12 août 2016
-
SALUT michel svp j 'ai le même problème.c urgennntt aidez moi
Messages postés
15841
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mai 2019
2729
0
Merci
Bonjour,

Version Excel ?

Quels est le nom de l'onglet des fichiers source ?

quelles colonnes ?

Les fichiers source sont ils les seuls dans le répertoire ?

mettre le classeur "cible" et 1 ou 2 classeurs "source" dans un zip et sans données confidentielles en pièce jointe sur
http://cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

solution proposée: macro VBA
Messages postés
84
Date d'inscription
mardi 27 mars 2012
Statut
Membre
Dernière intervention
18 mars 2019
9
0
Merci
salut,

ce genre de fichier va te demander un peu de travail au début tu devras tout de même faire les copier coller.
Sinon il faut que tu range tout tes fichiers source dans le même répertoire. Ensuite tu crées un nouveau fichier excel. Tu ouvres l'un de tes fichiers source et tu fait un copier de la ou des cellules souhaitée. Ensuite tu vas dans ton nouveau fichier et tu clic droit sur une cellule et tu clic sur "collage spécial" puis "collage avec liaison". Là tu verras qu'en selectionnant la cellule, il y a non pas la valeur à l'intérieur mais un truc du genre "=C4[fichier source].

Donc quand tu ferras une modif sur un fichier source elle serra automatiquement reproduite dans ton nouveau fichier. Il faudra pour voir cette modif dans le nouveau fichier, soit le fermer et le réouvrir en disant oui à la mise à jour des interliaisons, soit cliquer sur l'onlet "donnée" et "actualiser" mais je ne suis plus très sur.

Pour cela j'ai admis que tu avais excel 2010 mais je crois que la même chose est possible avec 2003 (je ne suis pas sur du collage spécial avec lien). Si ce n'est pas le cas répond sur ce forum et je t'expliquerai comment le faire avec 2003.

++
Zmon
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
Je suis bien sous Excel 2010.

Le problème est que le nombre de lignes de chaque tableau varie au fil du temps, je ne sais donc pas comment faire en sorte de, par exemple, copier "source 2" à la fin de "source 1".

Merci
w.gate
Messages postés
84
Date d'inscription
mardi 27 mars 2012
Statut
Membre
Dernière intervention
18 mars 2019
9 -
Donc il te faudra des macros. Et là je ne maitrise pas.
Vois du coté de michel_m qui semble avoir des pistes
Zmon
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
Ok. Merci quand même pour ta réponse :)
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
0
Merci
C'est génial :)

Est ce que je pourrais demander un autre détail ?

Serait il possible que lorsque l'on exécute la macro, les lignes précédemment renseignées disparaissent ?

Si j'ai bien compris le code, le nom des fichiers sources n'ont pas d'importance dans le répertoire ?

En tout cas merci beaucoup pour la qualité et la rapidité de ton travail !!
Zmon
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
S'il est possible d'avoir les dates sous le format "July-13" par exemple aussi, ce serait la perfection, mais ce n'est qu'un détail donc si c'est trop compliqué tanpis :)
michel_m
Messages postés
15841
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mai 2019
2729 -
Les parties à modifier sont en gras dans les extraits de code

Serait il possible que lorsque l'on exécute la macro, les lignes précédemment renseignées disparaissent ?

'-------------initialisations
     Application.ScreenUpdating = False
     With Sheets("Data")
          Ligfin = .Columns("A").Find("*", , , , , xlPrevious).Row
          'nettoyage ancien reports
          With .Range("A3:AH" & Ligfin)
               .ClearContents
               .Borders.LineStyle = xlNone
          End With
     End With
     Chemin = ThisWorkbook.Path & "\" & ss_rep

S'il est possible d'avoir les dates sous le format "July-13" par exemple aussi, ce serait la perfection, mais ce n'est qu'un détail donc si c'est trop compliqué tanpis :)

'restitution et compilation
           With Sheets("data")
               Ligvide = .Columns("A").Find("*", , , , , xlPrevious).Row + 1
               .Cells(Ligvide, "A").CopyFromRecordset Requete
               Ligfin = .Columns("A").Find("*", , , , , xlPrevious).Row
               .Range(.Cells(Ligvide, "A"), .Cells(Ligfin, "AH")).Borders.Weight = xlThin
               .Range(.Cells(Ligvide, "M"), Cells(Ligfin, "AC")).NumberFormat = "[$-409]mmmm-yy;@"
          End With

Si j'ai bien compris le code, le nom des fichiers sources n'ont pas d'importance dans le répertoire ?

Oui, s'ils sont les seuls utiles dans le répertoire
sinon, tu peux employer un générique en début de désignation du nom par ex avec le mois et l'année
Fichier = Dir("June-13"  & "*.xlsx")


Bon après-midi (à ta disposition si...)
Zmon
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
Tout fonctionne comme je le souhaitais :)

Merci à toi !

Bonne continuation !
Messages postés
2
Date d'inscription
vendredi 12 septembre 2014
Statut
Membre
Dernière intervention
13 septembre 2014
0
Merci
Bonjour michel_m, Zmon,

J'ai exactement le même souci de remplir un fichier excel avec les données de plusieurs autres fichiers. Pourriez-vous me donner les macros déjà codés par michel_m? ou m'aider dans ce sens ?

Merci....
Messages postés
15841
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mai 2019
2729
0
Merci
Bonjour,

Dans ce que tu demandes, les codes se font "au cas par cas" surtout si le contexte semble être similaire (pièges à la pelle)

Donc
1/ Version XL ?

2/ Tes fichiers "source" sont ils dans un m^me répertoire et les seuls ?
sinon, ont ils un nom générique style toto1, toto2... ?
où se trouve le fichier"cible" ?

3/ la structure des fichiers source est elle la m^me pour chaque classeur comme par exemple l'ordre des colonnes ? L'ordre est il le m^me dans le fichier "cible" ?
Toutes les colonnes sont elles à transférer ?

4/ mettre le classeur "cible" et 1 ou 2 classeurs "source" dans un zip et sans données confidentielles en pièce jointe sur
http://cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

Attention:
Si tu envoies des exemples , il faut que ceux-ci reflètent la réalité exacte des originaux: je ne recommence plus à coder et j'abandonne le suivi si j'ai en réponse à une proposition comme dans 90% des cas dans le style: "en fait , dans la réalité...." !

Tu joins donc 2 ou 3 classeurs sources avec env 500 lignes et le classeur cible
pour joindre des pièces

mettre les classeurs dans un .zip (pas de .rar) sans données confidentielles en pièce jointe sur
http://cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse



Michel
Messages postés
2
Date d'inscription
vendredi 12 septembre 2014
Statut
Membre
Dernière intervention
13 septembre 2014
0
Merci
Michel,

Merci pour la réactivité

voici les réponses aux questions :

1/ version XL : 2010 et 2007, mais je préfère avec 2010 si j'ai le choix

2/ actuellement le fichier cible se trouve dans un répertoire et les sources dans un sous répertoire du répertoire dans lequel se trouve le cible, les fichiers sources se trouvent tous dans le même et seul répertoire.
Mais on peut mettre le fichier cible avec les sources si ça facilite.
Les fichiers sources n'ont pas de noms génériques ; mais on peut le faire si ça facilite le travail

La structure des fichiers sources est très différentes, l'ordre de colonnes n'est pas respecté et même le nombre de colonnes ; mais on voudrait transférer que certaines colonnes (celles dont les noms est dans le fichier cible, cf. pièces jointes) même si certaines valeurs sont vides.

3/ je m'excuse car j'ai mis que 2 lignes par fichier ( avec excel 2007), les données sont assez confidentielles, en effet.


Le lien

http://cjoint.com/?0InpD3Ywaq7

En te remerciant
0
Merci
Bonjour j'ai un pb similaire j'aurai aimé voir les fichiers transmit sur cjoint pour m'inspirer mais c'est impossible michel_m peut tu venir a mon aide?
0
Merci
Bonjour,

j'ai le meme souhait de mettre à jour un fichier excel à partir d'un autre fichier excel (uniquement un pour mon cas). J'aimerais pouvoir par contre remplir les lignes du fichier cible en s'assurant que les informations des lignes du fichier source aient une reference commune avec la ligne cible rempli (clé de liaison).

Est-ce que vous pourriez m'aider à ce sujet ?

version excel 2010.

Bonne journée à tous.
Messages postés
68
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
9 avril 2019
0
Merci
bonjour
j'ai le même genre de problème , j'ai un classeur 1 qui va comporter au maximum 70 lignes , les lignes doivent se mettre dans le classeur 2 dans un fichier sur un autre disque dur , tous les jours je vais effacer le classeur 1 , par contre je voudrais que les données s'ajoute sur le classeur 2 ( exemple que le deuxième jour les donnée se mettent à la 71 eme ligne si le 70 première sont prisent.

merci d'avance

http://www.cjoint.com/c/FLrsCg46wJu
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-1
Merci
Bonjour,

Merci pour ta réponse rapide,

http://cjoint.com/data3/3FfrHwgUALl.htm

J'ai mis 3 fichiers sources et un fichier cible.
(J'ai renommé toutes les cases mais je ne pense pas que ce soit l'important).

Les fichiers sources ont ici 2-3 lignes, ils en font en réalité de 10 à 1000 (donc pas vraiment défini !).

Ce que j'aimerais donc serait voir les données de tous les tableaux source (de la ligne 2 à la fin de chacun, et toutes les colonnes) mis à la suite dans le fichier source (gardant donc les 2 même premières lignes).


Une solution macro VBA me paraissait effectivement être la solution.

Y a t il besoin d'autres informations ?

Merci !
michel_m
Messages postés
15841
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mai 2019
2729 -
OK, Merci de l'envoi :o)
ça devrait aller en espérant que l'ordre des colonnes soit le m^me (tu dis pb)

je prendrais comme générique du nom des classeurs sources....: bin "source"
et le classeur cible sera dans un repertoire et les sources dans 1 sous -répertoire

Je vois ça demain matin à la fraiche
Zmon
Messages postés
9
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
Oui les colonnes sont dans le même ordre. (J'ai juste changé le nom des colonnes (par exemple "C" à la place de "Colonne").

Ok pour avoir le classeur cible dans un rep et les sources dans un sous rep.
Et pour les noms génériques Source (1), Source (2) etc... me va :)

Merci à toi