Vba-word tester et actualiser un chemin d'accès à un fichier + recherche du nom des drivers

Contenu du snippet

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 / Exemple :


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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.