Recuperer liste des documents

Recuperer liste des documents - VB/VBA/VBS - Programmation

Marsh Posté le 06-06-2013 à 13:34:40    

bonjour à tous,
 
J'ai en donnée d'entrée une reference du type SXXX XXXXX XXX XX et un dossier source cible dans lequel les fichiers pdf sont classés dans des repertoires SXXX
 
dans mon fichier excel j'ai 20 lignes de références. je souhaie pour chacune lister dans une cellule tous les fichiers pdf commancant par SXXX XXXXX XXX
 
pour cela j'ai fait le code suivant
 

Code :
  1. Sub RechercheSDF()
  2. Dim Chemin As String, Fichier As String
  3.    
  4. 'Définit le répertoire contenant les fichiers
  5. Chemin = Sheets("Chemin" ).Range("A1" ).Value
  6. For i = 4 To Sheets("Liste" ).Range("C65000" ).End(xlUp).Row Step 1
  7. txt = ""
  8. RefS = Mid(Sheets("Liste" ).Cells(i, 3), 1, 4)
  9. Ref5 = Mid(Sheets("Liste" ).Cells(i, 3), 5, 5)
  10. ref3 = Mid(Sheets("Liste" ).Cells(i, 3), 10, 3)
  11. 'Boucle sur tous les fichiers xls du répertoire.
  12. Fichier = Dir(Chemin & "\" & RefS & "\*.pdf" )
  13. ct = 1
  14. Do While Fichier <> ""
  15.     test = InStr(1, Fichier, "-" )
  16.    
  17.     T5A = Mid(Fichier, 5, 5)
  18.     T5B = Mid(Fichier, 6, 5)
  19.    
  20.     T3A = Mid(Fichier, 1, 3)
  21.     T3B = Mid(Fichier, 1, 3)
  22.     T3C = Mid(Fichier, 1, 3)
  23.     T3D = Mid(Fichier, 1, 3)
  24.         If (T5A = Ref5 Or T5B = Ref5) And (T3A = ref3 Or T3B = ref3 Or T3C = ref3 Or T3D = ref3) Then
  25.         txt = txt & Chr(10) & Fichier
  26.         End If
  27.     Fichier = Dir()
  28.     ct = ct + 1
  29. Loop
  30. Sheets("Liste" ).Cells(i, 6) = txt
  31. Next i
  32. End Sub


 
 
Le résultat reste nul malgres le fait que j'ai bien des fichiers correspondants à ma référence
 
Savez vous ce qui se passe ?
 
Merci de votre aide  

Reply

Marsh Posté le 06-06-2013 à 13:34:40   

Reply

Marsh Posté le 06-06-2013 à 13:59:00    

ca me parait suspect tous ces liens (virus ?)
 
petite précision les T5A B et T3A,B,C,D viennent du fait que les références ont différents formats
SXXXXXXXXXXXXX
SXXX-XXXXXXXXXX
SXXX-XXXXX-XXXXX
SXXX-XXXXX-XXX-XX

Reply

Marsh Posté le 06-06-2013 à 14:07:18    

 
           Bonjour,
 
           je ne vois pas l'intérêt de quatre variables contenant la même valeur  (lignes n°23 à 26 + test de la ligne n°27)  …
 
           Sinon je suspecte tellement d'incohérences (me trompe-je peut-être ? …) que plutôt d'écrire un roman,
           cela serait plus simple de détailler ta demande et tes critères agrémentés d'un exemple clair …


Message édité par Marc L le 06-06-2013 à 15:31:24
Reply

Marsh Posté le 06-06-2013 à 14:16:35    

je suis telement plongé dans ce sujet que je ne me suis meme pas apercu que j'avais oublié de modifier les 4 variables (qui doivent etre différentes vu que les références ont plusieurs formats
 
je regarde ca

Reply

Marsh Posté le 06-06-2013 à 15:40:05    

 
           Ne serait-il pas plus simple d'effectuer une recherche sur les fichiers pdf commençant par S ?  (S*.pdf)
 
           S'il faut respecter une structure à la lettre, la recherche devrait alors s'effectuer comme ceci :

  •   SXXXXXXXXXXXXX     :   S?????????????.pdf
  •   SXXX-XXXXXXXXXX    :   S???-??????????.pdf  
  •   SXXX-XXXXX-XXXXX   :   S???-?????-?????.pdf
  •   SXXX-XXXXX-XXX-XX  :   S???-?????-???-??.pdf

 

Reply

Marsh Posté le 06-06-2013 à 18:08:46    

comment integrer cette recherche dans le code?
merci

Reply

Marsh Posté le 06-06-2013 à 18:49:53    

 
           Directement dans la fonction Dir , par exemple pour tous les fichiers pdf commençant par S :
 
           Fichier = Dir(Chemin & "\S*.pdf" )
 

Reply

Marsh Posté le 10-06-2013 à 15:37:19    

en changeant les 4 variables c bizarres mais ca fonctionne ;)
 
Marc L, le test des fichiers pdf commencant par S n'est pas possible (ce n'est pas vrai tout le temps)
 
Par contre comment géréer des S????????????.pdf ? je ne vois pas comment les intégrer
 
Merci pour votre aide

Reply

Marsh Posté le 10-06-2013 à 16:06:48    

 
           Toujours dans les arguments de la fonction  Dir  …
 

Reply

Sujets relatifs:

Leave a Replay

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