Boucle Extraire donnés d'un fichier dans onglet de même nom

  • Initiateur de la discussion Initiateur de la discussion JVOS
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JVOS

XLDnaute Junior
Bonjour à tous
J'ai plusieurs fichiers sources qui se nomment 1, 2, 3.
Chaque ficher à une seule Feuille. Tous les fichiers sont dans un seul dossier.
Je dois récupérer dans un fichier Cible les colonnes "A😀" de chaque fichier dans la feuille ayant le même nom que le fichier source.
En pratique :
J'ouvre mon Fichier ("1")
Je sélectionne mes colonnes ("A😀")
J'active mon fichier Cible
Je colle en B1 dans la Feuille ("1")
Je ferme le Fichier ("1")
Et je passe au suivant avec le Fichier ("2") et Feuille ("2") du fichier cible.

J'ai pas beaucoup d’expérience en VBA et j'ai pas pu aboutir
Aidez moi svp

Private Sub Workbook_Open()

Chemin = "C:\Users\HP\Documents\TEST"
Fichier = Dir(Chemin & "*.xlsx")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Range("A😀").Select
Selection.Copy
ThisWorkbook.Activate
ActiveSheet.Paste Destination:=Worksheets(Fichier).Range("B1")
Windows(Fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
Fichier = Dir ' Fichier suivant
Loop

End Sub
 
Bonjour
pas besoin de sélectionner pour copier coller
manque un antislash pour accéder au fichier
essai ceci, mais pas testé.
Private Sub Workbook_Open()
Chemin = "C:\Users\HP\Documents\TEST\"
Fichier = Dir(Chemin & "*.xlsx")
Do While Fichier <> ""
set source= Workbooks.Open (Chemin & Fichier)
source.colums(1).copy=thisworkbook.sheets(Fichier).columns(2)
source.save savechange:=false
Fichier = Dir ()' Fichier suivant
Loop

End Sub
 
Re

Test OK sur mon PC avec ces modifs
VB:
Private Sub Workbook_Open()
Dim Chemin$, Fichier$, Nom$, source As Workbook
Chemin = "C:\Users\STAPLE\Documents\TESTS\"
Fichier = Dir(Chemin & "*.xlsx")
Do While Fichier <> ""
Nom = Split(Fichier, ".")(0)
Set source = Workbooks.Open(Chemin & Fichier)
source.Sheets(1).Columns(1).Copy ThisWorkbook.Sheets(Nom).Columns(2)
Application.CutCopyMode = False
source.Close False
Fichier = Dir() ' Fichier suivant
Loop
End Sub
NB: Pense à remettre le bon chemin dans le code.
 
Merci beaucoup Staple1600
J'ai résolu mon problème en insérant un For i

Private Sub Workbook_Open()

Dim Chemin$, Fichier$, Nom$, source As Workbook
Dim i As Integer

Chemin = "C:\Users\HP\Documents\TEST\"
Fichier = Dir(Chemin & "*.xlsx")
Do While Fichier <> ""
Nom = Split(Fichier, ".")(0)
Set source = Workbooks.Open(Chemin & Fichier)
For i = 1 To 4
source.Sheets(1).Columns(i).Copy ThisWorkbook.Sheets(Nom).Columns(i + 1)
Next i
Application.CutCopyMode = False
source.Close False
Fichier = Dir() ' Fichier suivant
Loop
End Sub
 
Re

Je t'aurais alors proposé cette syntaxe 😉
VB:
Private Sub Workbook_Open()
Dim Chemin$, Fichier$, Nom$, source As Workbook
Chemin = "C:\Users\STAPLE\Documents\TEST\"
Fichier = Dir(Chemin & "*.xlsx")
Do While Fichier <> ""
Nom = Split(Fichier, ".")(0)
Set source = Workbooks.Open(Chemin & Fichier)
source.Sheets(1).Range("A:D").Copy ThisWorkbook.Sheets(Nom).Range("A:D")
Application.CutCopyMode = False
source.Close False
Fichier = Dir() ' Fichier suivant
Loop
End Sub
EDITION: Ah revoilou, sousou (salutations du soir) 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
672
Réponses
9
Affichages
580
Réponses
40
Affichages
2 K
Réponses
3
Affichages
582
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour