Bonjour,
Je suis Novice VBA et ai bsoin de vos lumières.
La facturation de nos prestations est faite deux fois par mois (deux envois), chacune regroupant un type de prestation. Chaque service reçoit par mois un récapitulatif de son activité facturée. Il reçoit donc deux fichiers par mois. Tous les fichiers de chaque mois sont stockés dans un répertoire commun et sont structurés de la sorte: Nom_service & N°envoi_facturation. Mon objectif est de faire un TCD pour le service qui reprend les données facturation de plusieurs envois.
Je souhaite que l'utilisateur puisse indiquer pour quels envois il veut le TCD. ==> Donc j'ai fait un Userform pour stocker input sous forme de variable (numenvoi1 et numenvoi2).
Mon problème ce situe au niveau de la consolidation des données dans un fichier unique.
Ma première idée est d'utiliser la fonction DIR. Cependant je n'arrive pas a limiter ma sélection aux fichiers correspondant aux envois que l'utilisteur souhaite.
J'ai essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim Numenvoi1 as long (récupéré via userform - exemple valeur = 522) Dim Numenvoi2 as long (récupéré via userform - exemple valeur = 523) FolderPath = "C:\Documents\EnvoiFactures\" FileName = Dir(FolderPath & "*" & Numenvoi1) Or Dir(FolderPath & "*" & Numenvoi2) Do While FileName <> "" Set WorkBk = Workbooks.Open(FolderPath & FileName) For Each ws In WorkBk.Worksheets.............. ... .. . WorkBk.Close savechanges:=False FileName = Dir() Loop
==> Marche pas. Le problème se situe au niveau de la var Filename. Pourquoi?
Autre alternative ???? => mettre dir(folderpath) et en début du loop mettre une condition de sortie du loop si filename ne termine pas par numenvoi1 ou num envoi2????
Partager