Plusieurs fichier en un seul

Fermé
rachton92 Messages postés 14 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 22 mai 2015 - 30 avril 2015 à 14:42
PHILOU10120 Messages postés 6388 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 13 septembre 2024 - 4 mai 2015 à 11:38
Bonjour,

chaque jour je reçois une vingtaine de fichiers Excel avec le même nombre de colonne mais plus de 4000 lignes par fichiers, comment puis-je coller tout ses fichiers à la suite dans un seul fichier. merci beaucoup de votre aide.

A voir également:

3 réponses

PHILOU10120 Messages postés 6388 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 13 septembre 2024 809
30 avril 2015 à 17:05
Bonjour Rachton92

Voici un début de macro si cela peu vous aider

Sub copie_colle()
'
' copie_colle Macro

Sheets("classeur 1 à copier").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("classeur centralisateur").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("classeur 2 à copier").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("classeur centralisateur").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Dans cet exemple on sélectionne dans "classeur 1 à copier" de A1 à dernière colonne à droite puis toutes les lignes en dessous (aucune cellule ne doit être vide dans la ligne 1et en colonne A
On sélectionne le classeur "centralisateur" en A1 et on descend à la dernière ligne remplie puis on décale d'une cellule vers le bas et on colle/valeurs
Puis on va au classeur 2 on copie et on revient sur le classeur centralisateur en A1 on descend à la dernière ligne on décale d'une cellule vers le bas et coller/valeur à vous de faire la suite
0
rachton92 Messages postés 14 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 22 mai 2015
4 mai 2015 à 10:31
merci philou pour ta réponse, malheureusement je suis vraiment nouveau sur excel et je t'avoue que je n'ai pas trop compris. aurai-tu l'explication plus détaillé avec les taches a suivre merci beaucoup
0
PHILOU10120 Messages postés 6388 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 13 septembre 2024 809
4 mai 2015 à 10:43
Bonjour rachton92

La première question avez vous accès dans le menu d'Excel à développeur? Ce menu permet l' enregistrement, la modification et la gestion des macros.
0
rachton92 Messages postés 14 Date d'inscription mercredi 29 avril 2015 Statut Membre Dernière intervention 22 mai 2015
4 mai 2015 à 10:51
oui je suis en train de me familiariser avec , je commence à créer pas mal de macros assez simple d'ailleurs . j'ai réussi a trouver une macro qui fusionne plusieurs feuille d'un même un fichier , mais pas de plusieurs fichiers.
0
PHILOU10120 Messages postés 6388 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 13 septembre 2024 809
4 mai 2015 à 11:38
Bonjour rachton92

Dans un module de votre classeur vous copiez le bout de code que je vous ai mis plus haut de Sub copie_colle à la fin :=False, Transpose:=False
vous rajoutez sur la ligne en dessous End sub pour terminer la macro
Vous reprenez au début de la macro et vous mettez le nom du 1° classeur à copier dans cette ligne
Sheets("classeur 1 à copier").Select
Pour cela vous pouvez utiliser l'enregistreur de macro qui va créer une nouvelle macro dans un nouveau module
Le classeur à copier étant fermé et dans le dossier ou vous le récupérez
Déclencher l'enregistreur de macro et faite la procédure Allez ouvrir le dossier puis le fichier, une fois le fichier ouvert vous pouvez arrêter l'enregistreur. Allez dans le module et vous copiez les lignes

Workbooks.Open Filename:="F:\TELECHARGEMENTS\JOURNAL DES VENTES.xlsx"
Sheets("Feuil1").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("CONSOLIDER.xlsx").Activate
Sheets("Feuil1").Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(1, 0).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Vos lignes seront légèrement différentes des miennes, mais cela ressemblera, le chemin sera différent
:="F:\TELECHARGEMENTS\JOURNAL DES VENTES.xlsx"
et le fichier de destination
Windows("CONSOLIDER.xlsx").Activate
Je vous ai mis l'ensemble de la première copie de fichier et le collage sur votre classeur de destination qui est pour moi "consolider"

Une fois cette partie coller dans votre module, allez sur le classeur que vous venez d'ouvrir pour le copier et fermez le
Retourner dans le module et faites un essai pas à pas
Mettez vous sur la ligne Sub copie_colle et appuyer sur la touche F8
La macro exécute la première ligne appuyez à nouveau la seconde ligne est éxécutée
Si tout se passe bien, vous pouvez copier cette partie du module et la coller en dessous juste avant le Sub de fin et vous changez le nom du classeur un pour le remplacer par le classeur 2

A vous lire pour la suite
0