Import automatique de données de diffèrent fichiers vers un seul

Bonjour le forum,

J'ai besoin de vos connaissances et surtout de votre aide

J’ai trois fichiers « fichier1, Fichier2 et Fichier3 » sur tous les trois dans la feuil1 de chacun j’ai des données, que je mets à jour régulièrement.

Je voudrais importer ces données(en effacent la mise en forme) dans le fichier « Classeur1.xlsm » à l’ouverture de celui-ci ou par un bouton.

Est-ce possible techniquement ?

Ou tout autre proposition est la bienvenue

L’exemple des imports ci-dessous :

  • Importer la feuil1 de « Fichier1.xlm » dans la feuil3 de « classeur1.xlsm »
  • Importer la feuil1 de « Fichier2.xlm » dans la feuil4 de «classeur1.xlsm »
  • Importer la feuil1 de « Fichier3.xlm » dans la feuil5 de «classeur1.xlsm »

Merci d’avance

Meilleures salutations

18classeur1.xlsm (28.38 Ko)
20fichier1.xlsx (8.51 Ko)
21fichier2.xlsx (8.87 Ko)
21fichier3.xlsx (8.59 Ko)

Bonjour,

Une proposition qui sera fonctionnelle si tu n'ajoutes pas de colonnes et que s'il n y aura pas de ligne vide entre deux valeur dans les colonnes A des fichier 1 2 et 3.

Et que ton fichier soit ouvert. Mais si tu veux on peut aussi le faire sans l'ouvrir.

21classeur1.xlsm (36.01 Ko)

Bonjour,

Merci de votre aide

Oui cette proposition me convient

En effet je ne rajouterais jamais de colonne.

Avec le fichier sans l'ouvrir il faudrait tester et de voir la quelle des deux serait la plus judicieuse.

Par contre j'ai un problème quand je clique sur les boutons il me demande de lancer "le débogueur" ?

J'ai placé les quatre fichiers dans le même dossier, est-correcte ?

PS: j'ai fais une petite erreur dans la feuil4 la colonne local n'était pas à sa place

Meilleures salutations

17classeur2.xlsm (34.01 Ko)

Re,

Tu as changé le nom du fichier c'est pour ça que t'as eu une erreur.

Il faut penser à le changer dans le code aussi.

Si tu mets les trois 4 fichiers dans le même classeur dossier cela fonctionnera sans l'ouvrir.

A++

17classeur1.xlsm (36.38 Ko)

Bonjour,

Merci pour ton message

J'ai pas trop compris de "mettre les trois fichier dans le même classeur", j'ai placé les quatre fichiers dans le même dossier, cela fonctionne nickel

Est-ce possible que la mise à jour des trois onglets soit ce fasse par un seul bouton ?

Et Est-ce que je peux mettre les trois fichiers de base ailleurs dans un autre dossier, c'est à dire le fichier "classeur1.xlsm" dans un dossier et les fichiers "Fichier1.xlm, Fichier2.xlm, Fichier3.xlm" dans un autre ?

Merci pour ton aide

Meilleures salutations

Bonjour,

Il n'y a pas de quoi )

Effectivement j'avais mal tournée ma phrase pour l'histoire de " dans le même classeur", c'est rectifié !

J'ai mis à jour ton fichier. Tout se fait en un seul bouton.

Pour la question d'emplacement des fichiers :

il faut que tu colles l'adresse des fichiers dans "chemin1,2 et 3" qui se trouvent dans le code (VBA).

Bonne journée.

26classeur1.xlsm (35.79 Ko)

Bonjour,

Je te remercie pour ton message.

J'ai placé le chemin "C:\Users\Dossier" comme illustré ci-dessous mais j'ai un message d'erreur !

Désolé mais comment dois-je placé le chemin ?

Aurais-tu l'amabilité de faire un exemple

Sub un()

Application.DisplayAlerts = False

Chemin1 = "C:\Users\Dossier"
Chemin2 = "C:\Users\Dossier"
Chemin3 = "C:\Users\Dossier"

'les chemins des fichiers (à adapter)
Workbooks.Open (Chemin1 & "C:\Users\Dossier\Fichier1.xlsx")
Workbooks.Open (Chemin2 & "\Fichier2.xlsx")
Workbooks.Open (Chemin3 & "\Fichier3.xlsx")

Merci d'avance

Meilleures salutations

Bonjour,

Oui c'est normal que tu as une erreur car il faut pas remettre "C:\Users..." dans Workbooks.Open

Tu copies le chemin tu colles en face de la variables "chemin" qui correspond à ton fichier.

Puis dans workbooks.open tu adaptes seulement le nom du fichier si tu l'a changé.

Chemin1 = "C:\Users\Dossier"
Chemin2 = "C:\Users\Dossier"
Chemin3 = "C:\Users\Dossier"

Workbooks.Open (Chemin1 & "\Fichier1.xlsx")
Workbooks.Open (Chemin2 & "\Fichier2.xlsx")
Workbooks.Open (Chemin3 & "\Fichier3.xlsx")

Bonjour,

Merci pour ton message .

En effet cela fonctionne super bien

Après plusieurs essai un peu dans tous les sens, mon erreur, je m’en suis aperçu ce matin, venait du faite que mon adresse réseau n’était pas bonne.

Par contre il y a un petit souci.

Si je prends par exemple le fichier3 et je lui rajoute trois lignes, quand j’appuie sur le bouton, tout fonctionne bien cela m’a bien mis à jour l’onglet du fichier Classeur1, mais si maintenant je supprime ses trois lignes que j'ai rajouté dans le fichier3, lors de la mise à jour il ne les supprime pas dans l’onglet du fichier Classeur1.

Merci d’avance de ton aide

Meilleures salutations

Rebonjour,

J'ai rajouté un petit code qui enlève les données dans toutes les feuilles du classeu1 sauf la feuille 1 avant de faire la mise à jour.

Comme ça les lignes que tu ajoutes et supprime seront reportées correctement.

Dis moi si cela te convient.

Mes salutations.

19classeur1.xlsm (33.34 Ko)

Bonjour,

Je te remercie pour ton message

Malheureusement cela ne fonctionne pas et il ne m’efface toujours pas les lignes supprimées et dans les deux autres onglets il m’importe que la première ligne.

Merci d’avance

Meilleures salutations

Bonjour,

Peux tu m'envoyer le nom et le chemin de tes fichiers ?

Bonjour,

Je te remercie pour ton message.

Ci-joint un fichier zip avec les fichiers et chemin.

Merci d'avance

Meilleures salutations

4import-auto.rar (48.67 Ko)

Re Bonjour )

Petite erreur corrigée.

Désolé pour le retard.

PS: Il faut que tu remettes les bon chemins.

Bonne réception.

3classeur1.xlsm (35.36 Ko)

Bonjour,

Je te remercie pou ton message

J'ai voulut faire un essai et j'ai enregistré le fichier avec le nom "Classeur2"

J'ai modifié le nom du classeur dans le code, comme ci-dessous

Set cl = Workbooks("Classeur2.xlsm")

Par contre j'ai un message d'erreur quand je mets à jour les onglets comme ci-dessous ou ci-joint ?

Merci d'avance de ta patience

Meilleures salutations

capture

Bonjour,

Regarde bien sur le message c'est toujours écrit "Classeur1.xlsm" introuvable.

Donc quelque part tu as oublié de modifier le nom.

Bien à toi.

Bonjour,

J’ai bien regardé et j’ai même demandé à plusieurs de mes collègues et nous avons rien trouvé.

Mise à part dans le module1 ou nous avons bien changé le nom du classeur sur la ligne :

Set cl = Workbooks("Classeur2.xlsm")

J’ai toujours ce message me disant qu’il ne trouve pas le Classeur1

Est-ce qu’il y a à un autre endroit du code ou un lien avec le classeur1 ?

Merci d’avance pour ton aide et ta patience.

Meilleures salutations

Code du module1

Sub un()

Application.DisplayAlerts = False

Chemin1 = "X:\Admin\FM\02-TONI\00-PROJETS FM\Exports_CD\DossierTest\Fichier de base"
Chemin2 = "X:\Admin\FM\02-TONI\00-PROJETS FM\Exports_CD\DossierTest\Fichier de base"
Chemin3 = "X:\Admin\FM\02-TONI\00-PROJETS FM\Exports_CD\DossierTest\Fichier de base"

'les chemins des fichiers (à adapter)
Workbooks.Open (Chemin1 & "\Fichier1.xlsx")
Workbooks.Open (Chemin2 & "\Fichier2.xlsx")
Workbooks.Open (Chemin3 & "\Fichier3.xlsx")

'Nommage des fichiers (à adapter)
Set F1 = Workbooks("Fichier1.xlsx").Sheets(1)
Set F2 = Workbooks("Fichier2.xlsx").Sheets(1)
Set F3 = Workbooks("Fichier3.xlsx").Sheets(1)
[color=#FF0000]Set cl = Workbooks("Classeur2.xlsm")[/color]

For i = 2 To cl.Worksheets.Count
    cl.Sheets(i).Activate
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Delete Shift:=xlUp
Next i
F1.Activate
F1.Rows(2 & ":" & Range("A" & Rows.Count).End(xlUp).Row).Copy
cl.Sheets(3).Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

F2.Activate
F2.Rows(2 & ":" & Range("A" & Rows.Count).End(xlUp).Row).Copy
cl.Sheets(4).Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

F3.Activate
F3.Rows(2 & ":" & Range("A" & Rows.Count).End(xlUp).Row).Copy
cl.Sheets(5).Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

cl.Sheets(1).Activate
Workbooks("Fichier1.xlsx").Close SaveChanges:=True
Workbooks("Fichier2.xlsx").Close SaveChanges:=True
Workbooks("Fichier3.xlsx").Close SaveChanges:=True
Application.DisplayAlerts = True

End Sub

Bonjour,

Alors c'est très bizarre parce que chez moi le code fonctionne.

Tu peux me donner le nom complet de tes 4 fichiers avec les extensions et les adresses.

Merci.

Meilleurs salutations.

Bonjour à tous,

Une autre approche aurait pu être possible en utilisant power pivot, vu que les feuil 1 des trois fichiers sont sous forme de tableau,

Cordialement,

Bonjour,

Oui en effet c'est très bizarre.

On a cherché avec mes collègues sans succès

Cela m'ouvre le classeur1 quand il est dans le même dossier que classeur3.

Et quand je supprime ou renomme Classeur1, j'ai le message d'erreur ci-dessus ?

Merci à tous de votre aide

Meilleures salutations

8dossiertest.rar (51.59 Ko)
Rechercher des sujets similaires à "import automatique donnees different fichiers seul"