Importer depuis plusieurs classeurs
Résolu/Fermé
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
-
29 juil. 2018 à 17:38
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 - 30 juil. 2018 à 17:52
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 - 30 juil. 2018 à 17:52
A voir également:
- Importer depuis plusieurs classeurs
- Importer favoris chrome - Guide
- Importer favoris firefox - Guide
- Importer contact carte sim - Guide
- Importer agenda outlook dans google - Guide
- Importer video youtube - Guide
5 réponses
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
29 juil. 2018 à 19:26
29 juil. 2018 à 19:26
Bonjour,
Essaie :
Daniel
Essaie :
Sub impt_data() Application.ScreenUpdating = False Dim Fich As String Do While Fich <> "Faux" Fich = Application.GetOpenFilename Workbooks.Open (Fich) Dim i As Long i = Cells(Rows.Count, 1).End(xlUp).Row + 1 cd = ActiveSheet.Range("A5:Li") ActiveWorkbook.Close False Range("A5:Li") = cd Loop End Sub
Daniel
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
29 juil. 2018 à 20:55
29 juil. 2018 à 20:55
Elle ne permet pas de sélectionner plusieurs fichiers à la fois. Après chaque fichier, elle demande le classeur à ouvrir. Quant à l'erreur, regarde la valeur de "i". Il faudrait aussi préciser la feuille avec laquelle tu veux travailler.
Daniel
Daniel
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
4
29 juil. 2018 à 21:18
29 juil. 2018 à 21:18
Salut daniel les feuilles source et destination s'appellent ' data'
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
30 juil. 2018 à 11:28
30 juil. 2018 à 11:28
Sub impt_data() Application.ScreenUpdating = False Dim Fich As String, Sh As Worksheet, I As Long, L As Long, CD As Range Dim Wbk As Workbook Set Sh = ThisWorkbook.Sheets("data") Fich = Application.GetOpenFilename Do While Fich <> "Faux" L = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row + 1 Set Wbk = Workbooks.Open(Fich) With Wbk.Sheets("data") I = .Cells(Rows.Count, 1).End(xlUp).Row Set CD = .Range("A5:L" & I) Sh.Cells(L, 1).Resize(CD.Rows.Count, 12).Value = CD.Value Wbk.Close False End With Loop End Sub
Daniel
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
4
30 juil. 2018 à 12:18
30 juil. 2018 à 12:18
salut daniel et merci pour votre effort
le code s’arrête au niveau de la 5 eme ligne : Set Sh = ThisWorkbook.Sheets("data")
j'ai essayé le code que vous avez posté hier tout en le modifiant un un peu il efficace mais je préfére utiliser "Application.GetOpenFilename" pour selectionner d'un seul coup tout les fichiers excel dans le dossier contenant pour les mettre l'un sous l'autre pour former un seul tableau :
Sub impt_data()
Application.ScreenUpdating = False
Dim Fich As String
Do While Fich <> "Faux"
Fich = Application.GetOpenFilename
Workbooks.Open (Fich)
Dim i As Long
i = Cells(Rows.Count, 2).End(xlUp).Row + 1
CD = ActiveSheet.Range(Cells(5, 1), Cells(i, 12))
ActiveWorkbook.Close False
Dim j As Long
j = Cells(Rows.Count, 2).End(xlUp).Row + 1
Range(Cells(5 + j, 1), Cells(i + j, 12)) = CD
Loop
End Sub
le code s’arrête au niveau de la 5 eme ligne : Set Sh = ThisWorkbook.Sheets("data")
j'ai essayé le code que vous avez posté hier tout en le modifiant un un peu il efficace mais je préfére utiliser "Application.GetOpenFilename" pour selectionner d'un seul coup tout les fichiers excel dans le dossier contenant pour les mettre l'un sous l'autre pour former un seul tableau :
Sub impt_data()
Application.ScreenUpdating = False
Dim Fich As String
Do While Fich <> "Faux"
Fich = Application.GetOpenFilename
Workbooks.Open (Fich)
Dim i As Long
i = Cells(Rows.Count, 2).End(xlUp).Row + 1
CD = ActiveSheet.Range(Cells(5, 1), Cells(i, 12))
ActiveWorkbook.Close False
Dim j As Long
j = Cells(Rows.Count, 2).End(xlUp).Row + 1
Range(Cells(5 + j, 1), Cells(i + j, 12)) = CD
Loop
End Sub
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
30 juil. 2018 à 12:50
30 juil. 2018 à 12:50
Voici la boucle sur les choix de fichiers :
Pour le reste, ca dépend si le classeur est celui qui contient la macro. Fais-moi parvenir ce dernier.
Daniel
Application.ScreenUpdating = False Dim Fich As String, Sh As Worksheet, I As Long, L As Long, CD As Range Dim Wbk As Workbook, Coll Set Sh = ThisWorkbook.Sheets("data") Coll = Application.GetOpenFilename(, , , , True) If Coll Is Nothing Then Exit Sub For I = 1 To UBound(Coll) Fich = Coll(I) Set Wbk = Workbooks.Open(Fich) Next
Pour le reste, ca dépend si le classeur est celui qui contient la macro. Fais-moi parvenir ce dernier.
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
4
30 juil. 2018 à 13:19
30 juil. 2018 à 13:19
salut
j'ai envoyé dans ce lien un exemple des fichiers et du dossier pour que vous puissier tester la macro
merci encore une fois
https://www.cjoint.com/c/HGElqxPzkoi
j'ai envoyé dans ce lien un exemple des fichiers et du dossier pour que vous puissier tester la macro
merci encore une fois
https://www.cjoint.com/c/HGElqxPzkoi
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
30 juil. 2018 à 14:38
30 juil. 2018 à 14:38
Sub impt_data() Application.ScreenUpdating = False Dim Fich As String, Sh As Worksheet, I As Long, L As Long, CD As Range Dim Wbk As Workbook, Coll, K As Long Set Sh = ThisWorkbook.Sheets("data") Coll = Application.GetOpenFilename(, , , , True) For K = 1 To UBound(Coll) Fich = Coll(K) Set Wbk = Workbooks.Open(Fich) L = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row + 1 With Wbk.Sheets("data") I = .Cells(.Rows.Count, 2).End(xlUp).Row Set CD = .Range("A5:L" & I) Sh.Cells(L, 1).Resize(CD.Rows.Count, 12).Value = CD.Value Wbk.Close False End With Next K End Sub
Daniel
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
4
30 juil. 2018 à 14:53
30 juil. 2018 à 14:53
salut daniel
le code est très intéressant mais je reçois sur mon fichier source uniquement les donnés d'un seul classeur , le dernier en sélection mais pas les autres
merci daniel pour votre aide
le code est très intéressant mais je reçois sur mon fichier source uniquement les donnés d'un seul classeur , le dernier en sélection mais pas les autres
merci daniel pour votre aide
danielc0
Messages postés
1567
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 février 2025
182
30 juil. 2018 à 15:47
30 juil. 2018 à 15:47
Tu as raison :
Daniel
Sub impt_data() Application.ScreenUpdating = False Dim Fich As String, Sh As Worksheet, I As Long, L As Long, CD As Range Dim Wbk As Workbook, Coll, K As Long Set Sh = ThisWorkbook.Sheets("data") Coll = Application.GetOpenFilename(, , , , True) For K = 1 To UBound(Coll) Fich = Coll(K) Set Wbk = Workbooks.Open(Fich) L = Sh.Cells(Sh.Rows.Count, 2).End(xlUp).Row + 1 With Wbk.Sheets("data") I = .Cells(.Rows.Count, 2).End(xlUp).Row Set CD = .Range("A5:L" & I) Sh.Cells(L, 1).Resize(CD.Rows.Count, 12).Value = CD.Value Wbk.Close False End With Next K End Sub
Daniel
noe2008
Messages postés
183
Date d'inscription
vendredi 18 juillet 2008
Statut
Membre
Dernière intervention
9 novembre 2023
4
30 juil. 2018 à 17:52
30 juil. 2018 à 17:52
Merci Daniel pour votre aide ça marche d'une façon magique
29 juil. 2018 à 19:40
la macro s'arrete sur la 9 eme ligne : cd = ActiveSheet.Range("A5:Li")
et ne permet pas de sélectionner plusieurs fichiers pour les ouvrir, peut qu'on doit ajouter un "array" à "Application.GetOpenFilename"
merci infiniment