Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VBA-WORD TESTER ET ACTUALISER UN CHEMIN D'ACCÈS À UN FICHIER + RECHERCHE DU NOM DES DRIVERS


Information sur la source

Catégorie :Fichier / Disque Niveau : Débutant Date de création : 08/11/2004 Date de mise à jour : 20/01/2005 18:04:14 Vu : 5 332

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

On cherche à tester si  CheminDOuverture  est un bon chemin d'accès à un fichier "NomDeLogiciel.exe". Si ce n'est pas le cas, on essaye de voir si le fichier n'est pas dans un autre dossier, et si tel est le cas on trouve le nouveau chemin d'accès.
Cela est utile pour un lancement propre d'un logiciel au sein de Word sans avoir à utiliser un On Error Goto pour gérer le cas d'une non-installation du dit-logiciel.
 

Source

  • sub ramTROUVER()
  • Dim I,N As Long
  • Dim NomFichierExe, CheminDOuverture As String
  • CheminDOuverture ="C:\TrucMucheCorporation\TrucMuche.exe"
  • If Dir(CheminDOuverture) = "" Then
  • ' On n'a pas le bon chemin d'accès.
  • I = InStrRev(CheminDOuverture, "\")
  • NomFichierExe = Mid(CheminDOuverture, I + 1, Len(CheminDOuverture) - I)
  • ' On retrouve "TrucMuche.exe"
  • CheminDOuverture = ""
  • With Application.FileSearch
  • .NewSearch
  • .LookIn = "C:\"
  • .SearchSubFolders = True
  • .MatchTextExactly = False
  • .FileName = NomFichierExe
  • .FileType = msoFileTypeAllFiles
  • End With
  • With Application.FileSearch
  • If .Execute() > 0 Then
  • I = 1
  • N = .FoundFiles.Count
  • Do While I <= N
  • ' On teste la présence d'un bon chemin.
  • If Dir(.FoundFiles(I)) <> "" Then
  • ' On a trouvé le nouveau chemin.
  • CheminDOuverture = .FoundFiles(I)
  • I = N + 1
  • End If
  • I = I + 1
  • Loop
  • End If
  • End With
  • End If
  • If CheminDOuverture ="" Then
  • ' Le fichier n'est pas présent.
  • Else
  • ' Le fichier est présent et son
  • ' chemin d'accès est CheminDOuverture .
  • End If
  • End Sub
  • Private Declare Function DéterminerLeTypDeDriver Lib "kernel32" _
  • Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
  • ' A mettre au début de votre module.
  • Sub TrouverTousLesDrivers()
  • ' Cette macro se trouve dans le livre
  • ' "Atelier Visual Basic 6.0 Edition 2001"
  • ' aux éditions Microsoft Press.
  • Dim I As Integer
  • Dim TypeDeDriver As Long
  • Dim NomDriver As String
  • For I = 0 To 25
  • NomDriver = Chr(I + 65) + ":\"
  • ' "A:\" , puis "B:\" , ...
  • TypeDeDriver = DéterminerLeTypDeDriver(NomDriver)
  • Select Case TypeDeDriver
  • Case 2
  • MsgBox "Le driver " + Chr(I + 65) + " est amovible."
  • ' Un lecteur de disquette.
  • Case 3
  • MsgBox "Le driver " + Chr(I + 65) + " est fixe."
  • ' Le disque dur ou une partie de celui-ci s'il a été partitionné.
  • Case 4
  • MsgBox "Le driver " + Chr(I + 65) + " est un disque réseau."
  • Case 5
  • MsgBox "Le driver " + Chr(I + 65) + " est un CD."
  • Case 6
  • MsgBox "Le driver " + Chr(I + 65) + " est un RAM-disque."
  • End Select
  • Next
  • End Sub
sub  ramTROUVER()

Dim I,N As Long
Dim NomFichierExe, CheminDOuverture As String

CheminDOuverture ="C:\TrucMucheCorporation\TrucMuche.exe"

If Dir(CheminDOuverture) = "" Then
		' On n'a pas le bon chemin d'accès.
    I = InStrRev(CheminDOuverture, "\")
    NomFichierExe = Mid(CheminDOuverture, I + 1, Len(CheminDOuverture) - I)
		' On retrouve  "TrucMuche.exe"
    CheminDOuverture = ""

    With Application.FileSearch
        .NewSearch
        .LookIn = "C:\"
        .SearchSubFolders = True
        .MatchTextExactly = False
        .FileName = NomFichierExe
        .FileType = msoFileTypeAllFiles
    End With
    
    With Application.FileSearch
        If .Execute() > 0 Then
            I = 1
            N = .FoundFiles.Count
            
            Do While I <= N
                ' On teste la présence d'un bon chemin.
                If Dir(.FoundFiles(I)) <> "" Then
                    ' On a trouvé le nouveau chemin.
                    CheminDOuverture = .FoundFiles(I)
                    I = N + 1
                End If
                I = I + 1
            Loop
        End If
    End With
End If

If CheminDOuverture ="" Then
	' Le fichier n'est pas présent.
Else
	' Le fichier est présent et son
	' chemin d'accès est  CheminDOuverture .
End If

End Sub

Private Declare Function DéterminerLeTypDeDriver Lib "kernel32" _
    Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
	' A mettre au début de votre module.

    
Sub TrouverTousLesDrivers()
	' Cette macro se trouve dans le livre
	' "Atelier Visual Basic 6.0 Edition 2001"
	' aux éditions Microsoft Press.

Dim I As Integer
Dim TypeDeDriver As Long
Dim NomDriver As String

For I = 0 To 25
    NomDriver = Chr(I + 65) + ":\"
	' "A:\" , puis  "B:\" , ...
    TypeDeDriver = DéterminerLeTypDeDriver(NomDriver)
    
    Select Case TypeDeDriver
        Case 2
            MsgBox "Le driver  " + Chr(I + 65) + "  est amovible."
		' Un lecteur de disquette.
        Case 3
            MsgBox "Le driver  " + Chr(I + 65) + "  est fixe."
		' Le disque dur ou une partie de celui-ci s'il a été partitionné.
        Case 4
            MsgBox "Le driver  " + Chr(I + 65) + "  est un disque réseau."
        Case 5
            MsgBox "Le driver  " + Chr(I + 65) + "  est un CD."
        Case 6
            MsgBox "Le driver  " + Chr(I + 65) + "  est un RAM-disque."
    End Select
Next

End Sub

Historique

20 décembre 2004 14:09:11 :
Ajout d'une macro (pris dans l'aide VBA) donnant la liste des drivers pour une recherche plus poussée (c'est à dire en dehors du "disque dur" C).
20 janvier 2005 18:04:14 :
Ajout d'une procèdure complète permettant la recherche de tous les drivers et de leur type. Cela répondra à l'objection faite ci-dessous.

Commentaires et avis

signaler à un administrateur
Commentaire de econs le 09/11/2004 03:16:55 administrateur CS


Tu vas sans doute dire que je pinaille, mais si mon fichier ne se trouve pas sur le disque "C:\" ?
Bah oui, j'ai plusieurs HDD, et ce n'est pas sur le C: que je sauvegarde mes fichiers ....


    With Application.FileSearch
        .NewSearch
        .LookIn = "C:\" <-------
        .SearchSubFolders = True
        .MatchTextExactly = False
        .FileName = NomFichierExe
        .FileType = msoFileTypeAllFiles
    End With

signaler à un administrateur
Commentaire de rambc le 09/11/2004 17:33:17

Bonne remarque maçis n'oublie pas que je débute.

signaler à un administrateur
Commentaire de rambc le 09/11/2004 18:14:45

Au passage, si tu sais comment trouver tous les disques partagés, je suis preneur.

HDD = ...  (exactement).

Merci.

PS : maçis = mais  (j'ai des gros doigts).

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.