XL 2013 ouvrir un dossier a nom variable

Arctica

XLDnaute Nouveau
Bonjour,

Je dois importer un fichier dont la première partie est invariable suivi de la date du jour et de l'heure a laquelle le dossier est créer (ex:Bons de prélèvement-20151124-101932, partie invariable "Bons de prélèvement-" ) ce dossier est sur le bureau j' ai donc ecris ce code
Code:
Dim NomFic As String
    NomFic = Dir("C:\Desktop\Bons de prélèvement- " & Format(Date, "yyyymmdd") & Format(Heure, "hhmmss"))
    Application.Workbooks.Open NomFic
malheureusement le code me "dis désolé nous ne trouvons pas"
j'ai mis .xlsx à la fin du code et là il me dit qualificateur incorrect pour Dir
pouvez vous m'aider ?
 

Dranreb

XLDnaute Barbatruc
Re : ouvrir un dossier a nom variable

Bonjour.
Si vous connaissez le nom du fichier en entier pourquoi faire un Dir ?
Sinon:
VB:
ChDrive "C": ChDir "C:\Desktop" ' pas C:\Users\…\Desktop ?
NomFic = Dir("Bons de prélèvement-*.xlsx")
If NomFic <> "" Then Application.Workbooks.Open NomFic
 

Arctica

XLDnaute Nouveau
Re : ouvrir un dossier a nom variable

bonjour Dranreb ,

Je vais essayer votre solution mais pour répondre à votre question, nous devons extraire un fichier toutes les heures
donc nous devons automatiser la macro et comme l'horaire, dernière partie du fichier change a chaque fois, avec la date le lendemain...
 

Dranreb

XLDnaute Barbatruc
Re : ouvrir un dossier a nom variable

Si vous ne connaissez son nom qu'à l'heure près vous pouvez faire :
VB:
NomFic = Dir("Bons de prélèvement-" & Format(Now, "yyyymmdd-hh") & "*.xlsx")
S'il peut avoir été créé dans les 10 dernières minutes, donc dans l'heure passée:
VB:
NomFic = Dir("Bons de prélèvement-" & Format(Now - TimeSerial(0, 10, 0), "yyyymmdd-hh") & "*.xlsx")
S'il ne peut avoir été créé que durant les 30 dernières secondes :
VB:
NomFic = Dir("Bons de prélèvement-" & Format(Now - TimeSerial(0, 0, 30), "yyyymmdd-hhmm") & "*.xlsx")
Vous pouvez aussi faire une boucle de ce genre :
VB:
Dim NomFic As String, RésuDir As String
ChDrive "C": ChDir "C:\Desktop"
RésuDir = Dir("Bons de prélèvement-" & Format(Now - TimeSerial(0, 5, 0), "yyyymmdd-hh") & "*.xlsx")
While RésuDir <> ""
   If RésuDir > NomFic Then NomFic = RésuDir
   RésuDir = Dir: Wend
If NomFic <> "" Then Application.Workbooks.Open NomFic
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 062
Membres
103 447
dernier inscrit
DamD