Importer données plusieurs fichiers
Bonjour,
Je me remet au VBA et je suis en train d'adapter un code trouvé sur le Forum.
Lien du Post (https://forum.excel-pratique.com/recherche/importer?d=eyJtYyI6IkltcG9ydGVyIiwiYSI6IiIsImYiOiIyIiwibS...).
Je souhaite sélectionner un dossier dans lequel 3 lignes Range A7:D9 de l'onglet A seront copiés les une en dessous des autres.
En faisant le tes sur 3 fichiers, je n'ai que la première ligne de mes 2 premiers fichiers et les 3 lignes du dernier fichier.
Je souhaiterai également démarrer la copie à partir de la seconde ligne.
Je vous remercie d'avance.
Public Repertoire As FileDialog
Public Chemin, AncienNom, NewFich, NewName As String
Public Cpt, CptKill, NBFich
Public NbFichier As Integer
Sub Bouton2_Cliquer()
Dim Fso As Object
Dim MonRepertoire As String, f As Object, x As Integer
Dim f1 As Object, f2 As Object
Dim chemin_complet As String
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show
If Repertoire.SelectedItems.Count > 0 Then
MonRepertoire = Repertoire.SelectedItems(1) ' & "\"
onglet = "A"
NbF = 1
For Each f In Fso.GetFolder(MonRepertoire).Files
chemin_complet = MonRepertoire & "\" & f.Name
Workbooks.Open Filename:=chemin_complet
Sheets("A").Range("A7:D9").Copy ThisWorkbook.Sheets(1).Cells(NbF, 1)
ActiveWorkbook.Close
NbF = NbF + 1
Next f
MsgBox NbF - 1 & " fichiers traités"
End If
End Sub
Je me suis rendu compte d'une erreur de ma part.
J'ai 3 lignes à copier il me faut faire
ActiveWorkbook.Close
NbF = NbF + 3
Et pour le calcul du nombre de fichier :
MsgBox (NbF - 1) / 3 & " fichiers traités"
Je vous prie de m'excuser, j'ai trouvé la solution.
Public Repertoire As FileDialog
Public Chemin, AncienNom, NewFich, NewName As String
Public Cpt, CptKill, NBFich
Public NbFichier As Integer
Sub Bouton2_Cliquer()
Dim Fso As Object
Dim MonRepertoire As String, f As Object, x As Integer
Dim f1 As Object, f2 As Object
Dim chemin_complet As String
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show
If Repertoire.SelectedItems.Count > 0 Then
MonRepertoire = Repertoire.SelectedItems(1) ' & "\"
onglet = "A"
NbF = 2
For Each f In Fso.GetFolder(MonRepertoire).Files
chemin_complet = MonRepertoire & "\" & f.Name
Workbooks.Open Filename:=chemin_complet
Sheets("A").Range("A7:D9").Copy ThisWorkbook.Sheets(1).Cells(NbF, 1)
ActiveWorkbook.Close
NbF = NbF + 3
Next f
MsgBox (NbF - 2) / 3 & " fichiers traités"
End If
End Sub