Bonjour,
Je suis en train de réaliser une macro pour extraire les données depuis plusieurs fichiers xls.
Je souhaite extraire les données des feuil1 de chaque fichier (qui sont dans un dossier commun) en spécifiant la colonne et la plage de ligne à prendre en compte (extraire les toutes les données présentes dans la colonne G, de la ligne 6 à 20 uniquement)
La matrice semble fonctionner dans le sens ou elle va ouvrir le fichier extrait (tous)les éléments, referme le fichier puis passe au second.
Le problème, c'est comment indiquer de copier uniquement les données de la colonne G et ensuite de les coller dans la colonne A et d'ajouter un saut de ligne entre les résultats pour éviter des compiler.
Malgré des recherches dans le forum je n'ai pas trouvé d'exemples pour m'aider.
Merci par avance de votre aide.
Voici le code réalisé
Sub Extraction()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\Users\.................................."
ChDir repertoire
fichier = Dir("*.xls")
Do While fichier <> ""
If fichier <> principal.Name Then
Workbooks.Open fichier
On Error GoTo suivant
With Sheets("Feuil1")
On Error GoTo 0
On Error Resume Next
.Range ("A1:A" & .[b65536].End(xlUp).Row)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""Feuil1"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub
Je suis en train de réaliser une macro pour extraire les données depuis plusieurs fichiers xls.
Je souhaite extraire les données des feuil1 de chaque fichier (qui sont dans un dossier commun) en spécifiant la colonne et la plage de ligne à prendre en compte (extraire les toutes les données présentes dans la colonne G, de la ligne 6 à 20 uniquement)
La matrice semble fonctionner dans le sens ou elle va ouvrir le fichier extrait (tous)les éléments, referme le fichier puis passe au second.
Le problème, c'est comment indiquer de copier uniquement les données de la colonne G et ensuite de les coller dans la colonne A et d'ajouter un saut de ligne entre les résultats pour éviter des compiler.
Malgré des recherches dans le forum je n'ai pas trouvé d'exemples pour m'aider.
Merci par avance de votre aide.
Voici le code réalisé
Sub Extraction()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
Application.ScreenUpdating = False
Set principal = ThisWorkbook
repertoire = "C:\Users\.................................."
ChDir repertoire
fichier = Dir("*.xls")
Do While fichier <> ""
If fichier <> principal.Name Then
Workbooks.Open fichier
On Error GoTo suivant
With Sheets("Feuil1")
On Error GoTo 0
On Error Resume Next
.Range ("A1:A" & .[b65536].End(xlUp).Row)
.UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
End With
ActiveWorkbook.Close False
End If
suivant:
If Err.Number = 9 Then MsgBox "Pas de feuille ""Feuil1"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
fichier = Dir
Loop
End Sub