[VB/Excel]Comparer liste excel avec liste de fichiers

Comparer liste excel avec liste de fichiers [VB/Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 23-06-2010 à 17:54:36    

Hello !
 
Voila, je cherche à faire une manip' un peu particulière.
Je possède un classeur Excel A, il possède dans une feuille une liste de nom qui correspondent à des projets.
Dans un repertoire B, j'ai un ensemble de fichiers excel. A chaque projet de A peut correspondre un fichier Excel.
Je n'ai pas forcément un fichier excel par projet.
 
Ce que je voudrai, c'est dans le fichier excel A, avoir une colonne qui m'indique si dans le repertoire B un fichier excel relatif à chaque projet présent dans la liste existe ou non.
 
Pour le moment, j'arrive à enregistrer la liste des fichiers présents dans le répertoire B dans un fichier texte.
Les noms de projets dans A sont identiques au nom des fichiers dans le repertoire B, seul l'extension ".xls" apparait quand je créé mon fichier texte.
 
Une idée de comment faire via VB ? :)

Reply

Marsh Posté le 23-06-2010 à 17:54:36   

Reply

Marsh Posté le 24-06-2010 à 11:34:59    

J'ai trouvé et d'une manière plus simple que par laquelle j'ai commencé !
 
en gros :  
 

Code :
  1. Sub VeriffileExist(folder As String)   'en entrée de la fonction, j'ai le chemin qui doit contenir chaque fichier.xls
  2. '
  3. 'Purpose : Ensure that a file related to the list exist in the xls file folder
  4. '
  5. Dim fso As Object, x As Boolean
  6. Dim nbfile As Integer
  7. Dim i As Integer
  8. Dim fileName As String
  9. nbfile = Application.WorksheetFunction.CountA(Range("A2:A65536" )) 'Définie le nombre de fichiers qui sont dans la liste initiale
  10. For i = 2 To (nbTracker + 1)   'Boucle passe en révue chaque ligne de la liste et regarde si un fichier qui porte le meme nom.xls est présent dans le folder que l'on veut inspecter
  11.     fileName= Sheets("file_monitoring" ).Range("A" & i).value     'file_monitoring est la feuille qui contient la liste de tous les fichier
  12.    
  13.     Set fso = CreateObject("Scripting.FileSystemObject" )
  14.     x = fso.FileExists(folder & "\" & file_monitoring& ".xls" )
  15.    
  16.     If x = True Then Sheets("file_monitoring" ).Range("B" & i).value = "Created"
  17.     If x = False Then Sheets("file_monitoring" ).Range("B" & i).value = "none"
  18.  
  19.    
  20.     x = False   'réinitialise la variable x  (mais pas sur que ça soit nécessaire)
  21. Next
  22. End Sub


Reply

Sujets relatifs:

Leave a Replay

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