Remplir un fichier Excel à partir d'autres fichiers Excels

Zmon -  
FOT.02 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -
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 :)


11 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 316
 
Bonjour

Comme promis "à la encore fraiche"

https://www.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
3
ilhemGh Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
SALUT michel svp j 'ai le même problème.c urgennntt aidez moi
0
w.gate Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   11
 
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.

++
1
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
w.gate Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   11
 
Donc il te faudra des macros. Et là je ne maitrise pas.
Vois du coté de michel_m qui semble avoir des pistes
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Ok. Merci quand même pour ta réponse :)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 316
 
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
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

solution proposée: macro VBA
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 !!
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 :)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 316
 
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...)
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Tout fonctionne comme je le souhaitais :)

Merci à toi !

Bonne continuation !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephart Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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....
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 316
 
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
https://www.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
0
stephart Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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

https://www.cjoint.com/?0InpD3Ywaq7

En te remerciant
0
arnold_d
 
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
speac
 
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.
0
FOT.02 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   5
 
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
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
-1
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 316
 
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
0
Zmon Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
0