Vba : trouver un fichier et en indiquer le chemin

fred19732 Messages postés 10 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 3 mars 2010 - 21 avril 2008 à 11:08
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 21 avril 2008 à 21:28
Bonjour à tous.

J'ai un fichier, volontairement appelé NFDVS.FVI.
Je voudrais faire une macro qui recherche ce fichier aussi bien sur les lecteurs fixes (disque dur/partition) que sur les lecteurs amovibles (CD-rom, carte SD....)

Ensuite, je voudrais pouvoir recupérer la lettre associée au(x) lecteur(s) ou a été trouvé ce fichier.

J'ai déjà recherché sur plusieurs forums, mais j'avoue que je n'ai rien trouvé qui fonctionne.

P.S.: Il faudrait que cette macro puisse etre compatible excel 2000, 2003 et 2007.

Si quelqu'un peut m'aider ca serait vraiment très sympa.

Merci d'avance

5 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 avril 2008 à 11:33
Bonjour,

Une macro ?

Elle ne servirait dans un tel cas que de support à la déclaration d'une fonction de l'Api de Windows.

La chose est largement réalisable, mais son exécution nécessitera bien évidemment un certain temps, pour ne pas dire un temps certain, temps qui dépendra (pour chacun des lecteurs) de sa capacité en octets... !!!


 


En espérant que ce nom ne figure de manière certaine pas en plusieurs endroits et/ou sur plusieurs lecteurs ...
0
fred19732 Messages postés 10 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 3 mars 2010
21 avril 2008 à 11:39
Oui je sais que cela peut durer un certain temps.

En fait, après réflexion, ce fichier se trouvera sur deux emplacements, un fichier sur un cdrom, un autre sur une carte SD, donc en fait, il suffirait de "scruter" les lecteurs amovibles, d'ou un temps certain, ou un certain temps raccourcis.

Si vous pouviez m'aider, ca serait sympa
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 11:47
Salut,
en plus de [auteur/JMFMARQUES/615490.aspx jmfmarques] (salut) je dirais:
>En lisant ceci : "Il faudrait que cette macro puisse etre compatible excel 2000, 2003 et 2007." on a plus l'impression que tu cherches un bout de code tout fait...

Dans ce cas je suis désolé de te dire que la section sources est déjà en mesure de répondre à TOUTES tes interrogations, et t'apportera la solution, encore fat il chercher et essayer de "construire ta solution avec des bouts pris par ci par la. je suis sur que même  www.codyx.org t'apporte déjà TOUT


@+: Ju£i?n
Pensez: Réponse acceptée
0
Acta_6 Messages postés 29 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 22 avril 2008
21 avril 2008 à 12:16
Je t'aurais bien dit d'utiliser  Dir() de manière récursive et dans une boucle pour changer de lecteur, mais je ne suis pas sur que ce soit la meilleure solution. Et comme l'on dit les membres confirmés, ca peut prendre un temps certains.
Ensuite, tu récupèrerais la lettre de ton lecteur en utilsant left(fichierTrouvé.Path,1) mais bon...
(En plus, je suis même pas sur que ce soit compatible Excel 2003 et 2007 car je connais que 2000)
Enfin, bon courage...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
21 avril 2008 à 21:28
salut,

voici un début de piste VB6 pour.. ne pas chercher partout....

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Load()
    'KPD-Team
1998
    'URL:
http://www.allapi.net/
    'E-Mail:
KPDTeam@Allapi.net
    'Set the graphic mode to
persistent
    Me.AutoRedraw =  True
    'Get information about the
C:\
    Select Case GetDriveType("C:")
        Case 2
            Me.Print "Removable"
        Case 3
            Me.Print "Drive
Fixed"
        Case Is = 4
            Me.Print "Remote"
        Case Is = 5
            Me.Print "Cd-Rom"
        Case Is = 6
            Me.Print "Ram
disk"
        Case Else
            Me.Print "Unrecognized"
    End Select
End Sub

pour le reste codyx.org t'aidera comme jrivet te l'a indiqué.
on peut t'aider si tu as fait un bout de code qui mérite d'être corrigé, pas si tu as ouvert VBA et qu'on doit le remplir.... ^^

++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0