Contrôler le type de Drive (GetDrive.DriveType)

Hello le Forum
J'essaie depuis un certain temps de résoudre un problème, je veux exécuter une macro CreeDossierD si la lettre du lecteur ET (surtout) si celui-ci est un disque dur, dans le cas contraire, j'exécute la 2ème macro

DriveType 2 correspondant à : Disque dur fixe, directement implanté dans votre PC

Sub DriveExists()
    Dim drive As New Scripting.FileSystemObject
    If drive.DriveExists("D:\") = True And drive.GetDrive.DriveType = 2 Then
        CreeDossierD
'       MsgBox "Le disque dur D: existe, c'est parfait !"
    Else
        CreeDossierC
    End If
End Sub

Toute aide est la bienvenue, merci d'avance

Bonjour,

et c'est quoi ton problème ?
eric

Hello

De pouvoir contrôler si le lecteur D: existe ET que ce soit un disque dur et pas une clé USB ou un lecteur de DVD
La macro fonctionne tip top sans le And mais si le D: est un lecteur de CD par exemple, je ne pourrais par créer de dossier avec la macro CreeDossierD

Bonjour Bifrons, eriiic,

Avec ce code tu vois l'ensemble des choix. Et selon ce que tu choisis en GetDrive la création de dossier sera différente.

Sub ShowDriveType()
    Dim fs, d, s, t
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive("D:\")
    Select Case d.DriveType
        Case 0: t = "Unknown"
        Case 1: t = "Removable"
        Case 2: t = "Fixed"
        Case 3: t = "Network"
        Case 4: t = "CD-ROM"
        Case 5: t = "RAM Disk"
    End Select
    If t = "Fixed" Then
        CreeDossierD
'       MsgBox "Le disque dur D: existe, c'est parfait !"
    Else
        CreeDossierC
    End If

Il vaut mieux garder le test de l'existence du lecteur sinon la suite génère une erreur :

    Dim drv As Object
    Set drv = CreateObject("Scripting.FileSystemObject")
    If drv.DriveExists("D") Then
        If drv.drives("D").DriveType = 2 Then
            Debug.Print "ok"
        End If
    Else

    End If

et pour la même raison séparer les 2 tests
eric

@ eriiic

C'est parfait, exactement ce que je voulais, un grand merci à toi !!!

Rechercher des sujets similaires à "controler type drive getdrive drivetype"