VBA - gerer une liste de chemin d'accés

guez

XLDnaute Nouveau
Bonjour,

La macro ci dessous fonctionne parfaitement. Elle extrait 2 données des fichiers excel présent dans 1 dossier. (une feuille parametrage permet de selectionner la source). La finalité de cette macro est d'extraire 2 données des fichiers excel présent dans 32 dossiers. Les 32 sources sont inscrit dans ma page parametrage.

Outre la solution de répeter mon code 32 fois en changeant le chemin d'accés à chaque fois, est-il possible de faire autrement?

Comme vous pouvez le voir dans le code, la 1ere source est la cellule K19, les autres sont en dessous jusque K50.

J'espere être claire.:rolleyes:


Merci.



Code:
Sub recup()

'Parametre d'importation
ThisWorkbook.Activate
Dim Source As String
Source = Sheets("PARAMETRES").Range("K19")
Chemin = Source ' chemin d'accés
fichier = Dir(Chemin & "*????-????-??.xls")
Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier

'localisation des données à extraire
Dim Effectif As String, NumGestion As String
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")
    
'Extraction des données
ThisWorkbook.Sheets("AjoutEffectif").Activate
ActiveCell.Value = Effectif
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = NumGestion

Windows(fichier).Close savechanges:=False ' fermeture du fichier sources sans enregistrer les changements
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : VBA - gerer une liste de chemin d'accés

A tester:

Code:
Sub recup()
'Parametre d'importation
ThisWorkbook.Activate
Dim Source As String

ligne=ActiveCell.row
colonne=ActiveCell.column

for n=19 to 50

Source = Sheets("PARAMETRES").Range("K" & n)
Chemin = Source ' chemin d'accés
fichier = Dir(Chemin & "*????-????-??.xls")

Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier

'localisation des données à extraire
Dim Effectif As String, NumGestion As String
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")
    
'Extraction des données
ThisWorkbook.Sheets("AjoutEffectif").Activate
'ActiveCell.Value = Effectif
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = NumGestion

Cells(ligne+n-19,colonne)=Effectif
Cells(ligne+n-19,colonne+1)=NumGestion
Windows(fichier).Close savechanges:=False ' fermeture du fichier sources sans enregistrer les changements
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop

next
End Sub
 
Dernière édition:

guez

XLDnaute Nouveau
Re : VBA - gerer une liste de chemin d'accés

MERCI pierre Jean

la macro se lance par contre elle extrait les données sur la même cellule a chaque fois :(

Comme il ya 2 donnée a extraire par fichier, il faut que j'ai les données du fichier 1 sur cellule A1 et B1, puis pour le fichier 2 A2 et B2... et ainsi de suite
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : VBA - gerer une liste de chemin d'accés

Curieux !!
il me semblait avoir géré cela

vois comme ceci:

Code:
Sub recup()
'Parametre d'importation
ThisWorkbook.Activate
Dim Source As String

ligne=1 'ligne d'ecriture
colonne=1 ' colonne d'ecriture  

for n=19 to 50

Source = Sheets("PARAMETRES").Range("K" & n)
Chemin = Source ' chemin d'accés
fichier = Dir(Chemin & "*????-????-??.xls")

Do While fichier <> ""
Workbooks.Open Filename:=Chemin & fichier

'localisation des données à extraire
Dim Effectif As String, NumGestion As String
Effectif = Sheets("BALANCE").Range("D89")
NumGestion = Sheets("PARAMETRES").Range("D9")
    
'Extraction des données
ThisWorkbook.Sheets("AjoutEffectif").Activate
'ActiveCell.Value = Effectif
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = NumGestion

Cells(ligne,colonne)=Effectif
Cells(ligne,colonne+1)=NumGestion
ligne=ligne+1
Windows(fichier).Close savechanges:=False ' fermeture du fichier sources sans enregistrer les changements
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
fichier = Dir ' Fichier suivant
Loop

next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 110
dernier inscrit
Privé