Aide fonction Dir (VBA)

Aide fonction Dir (VBA) - VB/VBA/VBS - Programmation

Marsh Posté le 13-04-2006 à 12:23:05    

Bonjour  :)
 
Je travail sur VBA et Excel
J'aimerais fabriquer un masque 'de saisie' avec un nombre précis de caractere pour la fonction Dir :  
 
En effet,  
--------------
dir ("C:\*.xls" )
--------------
me fourni les fichiers Excels se trouvant dans le repertoire "C:"
 
mais je cherche seulement les fichiers ayant pour nom :
"xxx_xxxx_xx_xxx.xls"  (ou x peut etre n'importe quel caractere)
exemples : "156_dagd_01_ger.xls"
               "748_frte_24_tyu.xls"
 
ma seule solution est pour l'instant :
---------------------
dir ("C:\*_*_*_*.xls" )
---------------------
 
mais je ne suis pas satisfait a 100% ...  :kaola:  
 
et je cherche plutot un truc du style :  
---------------------------
dir ("C:\???_$$_??_$$$.xls" )
---------------------------
ou ? remplacerai 1 chiffre, $ remplacerai une lettre, etc ...  (comme en batch)
 
quelqu'un saurait comment fabriquer mon masque 'de saisie' ( ce n'est pas vraiment un masque de saisie, mais bon .. ), quelles sont les caracteres à inscrire, svp ?  
 
Dans l'espoir d'avoir assez detaillé mon probleme, je vous adresse, messieurs et dames, mes salutations distinguées    :p  
 

Reply

Marsh Posté le 13-04-2006 à 12:23:05   

Reply

Marsh Posté le 13-04-2006 à 12:24:18    

désolé, les " )   sont en fait " )

Reply

Marsh Posté le 13-04-2006 à 12:56:29    

 

fic = Dir("C:\*.xls" )
Do
   MsgBox (fic)
   If ((Left(fic, 1) > "1" And Left(fic, 1) < "9" ) _
       And (Mid(fic, 2, 1) > "1" And Mid(fic, 2, 1) < "9" ) _
       And (Mid(fic, 3, 1) > "1" And Mid(fic, 3, 1) < "9" ) _
       And (Mid(fic, 4, 1) = "_" ) _
       And (Mid(fic, 5, 1) > "A" And Mid(fic, 5, 1) < "z" ) _
       And (Mid(fic, 6, 1) > "A" And Mid(fic, 6, 1) < "z" ) _
       And (Mid(fic, 7, 1) = "_" ) _
       And (Mid(fic, 8, 1) > "1" And Mid(fic, 8, 1) < "9" ) _
       And (Mid(fic, 9, 1) > "1" And Mid(fic, 9, 1) < "9" ) _
       And (Mid(fic, 10, 1) = "_" ) _
       And (Mid(fic, 11, 1) > "A" And Mid(fic, 11, 1) < "z" ) _
       And (Mid(fic, 12, 1) > "A" And Mid(fic, 12, 1) < "z" ) _
       And (Mid(fic, 13, 1) > "A" And Mid(fic, 13, 1) < "z" )) Then
       ' On a trouvé, on sort de la boucle
     Exit Do
   End If
   a = Dir 'suivant
Loop
MsgBox (fic)


Reply

Marsh Posté le 13-04-2006 à 13:04:59    

La fonction Dir n'accepte que deux caractères « joker » qui sont ? et *

Reply

Marsh Posté le 13-04-2006 à 14:59:45    

lol oui merci pour ta reponse olivthill   :)    
c'est une solution interressante, et sur à 100 %, mais je ne peux prévoir les lettres qu'il y aura dans les nom de 200 fichiers différents  :)
c'est de ma faute, c'est moi qui avais pas précisé le nombre de fichiers
en tout cas merci pour ta reponse rapide, je pourrai peut etre l'utiliser dans un autre cas  
 
et merci tegu pour cette précision  :)
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed