Faire une recherche d'une liste de valeurs (noms de fichiers) sur le disque dur

cocoboss25 Messages postés 1 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 16 juillet 2010 - 16 juil. 2010 à 09:33
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 18 juil. 2010 à 22:29
Bonjour,

je ne suis pas certain de poster dans la bonne section mais je tente quand meme le coup.
Je cherche un code qui me permettrait de verifier la présence de fichiers à un emplacement précis de mon ddur. Si un fichier est trouvé il copie ce fichier dans un autre répertoire.
La liste des fichiers à chercher est indiqué dans une plage de cellule dont la taille peut varier. Une boucle associé à la recherche me semble évidente avec un arret en cas de cellule vide par ex. L'idéal serait de pouvoir lancer la commande via un bouton car le fichier qu'on me transmet change sans arret. Je suis en Excel 2007. Merci de votre aide.
A voir également:

1 réponse

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
18 juil. 2010 à 22:29
Bonsoir
Comme début
j'ai quelque chose en vb6 en répondant à une question semblable.
Reste à savoir si ça convient
Bonsoir
il cherche le fichier voulu seulement dans le hard disk et non dans le cd-rom ou diskonkey etc...
C'est assez compliqué le problème est que si
tu as des files corrompu le programme s'arrete.
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Private Type Folder
  name As String
 path As String
End Type

Dim folders() As Folder

Dim countentries As Long
Dim countfiles As Long
 
Private Sub BuildListFolder(fichier As String)

Dim files() As String
Dim Index As Long
Dim path As String
Dim drivetype As Long
Dim namefolder As String
Dim namefile As String
Dim thisadate As Date
Dim val As Integer
Index = -1
countentries = 0
countfiles = 0
path = "D"
'estimant que les drives vont jusqu'a I seulement
While path < "I"
path = path & ":"
 drivetype = GetDriveType(path)
 
 If drivetype = 3 Then
    While Index <= countentries
      namefolder = Dir(path, vbDirectory)
       
      While namefolder <> ""
       If namefolder <> "." And namefolder <> ".." Then
         val = GetAttr(path & namefolder)
         If val = 16 Then
         'keep directory
            ReDim Preserve folders(countentries)
            folders(countentries).name = namefolder
            folders(countentries).path = path
            countentries = countentries + 1
          End If
         If val <> 16 Then
              If namefolder = fichier Then              ReDim Preserve files(countfiles)
              files(countfiles) = path & namefolder
              countfiles = countfiles + 1
             End If
          End If
       End If
       namefolder = Dir
      Wend
       Index = Index + 1
       If Index < countentries Then
          path = folders(Index).path & folders(Index).name & ""
       End If
    Wend
 End If
 path = Chr(Asc(path) + 1)
 Index = countentries
 Wend
End Sub



fichier est le fichier à trouver
à la fin du sub dans list il y a la liste de
tous les fichiers ayant le meme non
comme tu demandes à un endroit precis du hdisk
je ne sais pas si ça convient
et en plus il faut faire le tout dans un module
dans le excell

bon courage
0
Rejoignez-nous