XL 2016 vbscript dans vba ejecter les lecteurs amovibles

Ron2cuir

XLDnaute Nouveau
vbscript dans vba ejecter les lecteurs amovibles
Bonjour

macro pour éjecter les lecteurs amovibles

Sub Ejection_dde()

On Error Resume Next

' Créer une instance du gestionnaire de disques logiques
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Parcourir les lettres de lecteur de E à M
For i = Asc("E") To Asc("M")
' Convertir la lettre en majuscule
strDriveLetter = UCase(Chr(i))

' Récupérer la liste des disques logiques pour la lettre de lecteur actuelle
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=2 and DeviceID='" & strDriveLetter & ":'")

' Si un disque amovible est présent pour cette lettre de lecteur, éjecter
For Each objDisk In colDisks
objDisk.Eject
Next
Next

' Libérer les ressources
Set objWMIService = Nothing
End Sub

colDisks ne se charge pas !!

faut-il cocher une référence?
Merci pour l'aide
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
Allons donc
çà me rajeuni pas ça le WMI en vbscript 🤣
on parle de quoi ici?
de Removable drive ou Local hard disk
si on parle uniquement de clé usb
VB:
Sub test()
'patricktoulon
Dim LiD, WmiS As Object, objdisk As Object
    
    Set WmiS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    
    Set colDisks = WmiS.ExecQuery("SELECT * FROM Win32_LogicalDisk")
    
    LiD = " EFGHIJKLM "    'de E à M
    
    For Each objdisk In colDisks
      
       If objdisk.DriveType = 2 Then    'si on veut que les disques de type clés USB
        
        If LiD Like "*" & Left(objdisk.DeviceID, 1) & "*" Then   'si lid contient la lettre de ce lecteur
                
                MsgBox objdisk.DeviceID
                
                'objDisk.eject
            End If
        
        End If
    
    Next

End Sub

si les disques sont des disque dur externes alors il faudra bloquer la première condition
comme ceci
Code:
Sub test()
'patricktoulon
Dim LiD, WmiS As Object, objdisk As Object
    
    Set WmiS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    
    Set colDisks = WmiS.ExecQuery("SELECT * FROM Win32_LogicalDisk")
    
    LiD = " EFGHIJKLM "    'de E à M
    
    For Each objdisk In colDisks
       
       'If objdisk.DriveType = 2 Then    'si on veut que les disques de type  clés USB
        
        If LiD Like "*" & Left(objdisk.DeviceID, 1) & "*" Then   'si LiD contient la lettre de ce lecteur
                
                MsgBox objdisk.DeviceID
                
                'objDisk.eject
            End If 'Fin de condition like Lid
        
        'End If  'Fin de condition drivetype 2 ( clé USB)
        
    
    Next

End Sub
;)
 

Ron2cuir

XLDnaute Nouveau
VB:
Sub test()
'patricktoulon
Dim LiD, WmiS As Object, objdisk As Object

Set WmiS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colDisks = WmiS.ExecQuery("SELECT * FROM Win32_LogicalDisk")

LiD = " EFGHIJKLM " 'de E à M

For Each objdisk In colDisks

If objdisk.DriveType = 2 Then 'si on veut que les disques de type clés USB

If LiD Like "*" & Left(objdisk.DeviceID, 1) & "*" Then 'si lid contient la lettre de ce lecteur

MsgBox objdisk.DeviceID

'objDisk.eject
End If

End If

Next

End Sub
si les disques sont des disque dur externes alors il faudra bloquer la première condition
comme ceci
Code:
Sub test()
'patricktoulon
Dim LiD, WmiS As Object, objdisk As Object

Set WmiS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colDisks = WmiS.ExecQuery("SELECT * FROM Win32_LogicalDisk")

LiD = " EFGHIJKLM " 'de E à M

For Each objdisk In colDisks

'If objdisk.DriveType = 2 Then 'si on veut que les disques de type clés USB

If LiD Like "*" & Left(objdisk.DeviceID, 1) & "*" Then 'si LiD contient la lettre de ce lecteur

MsgBox objdisk.DeviceID

'objDisk.eject
End If 'Fin de condition like Lid

'End If 'Fin de condition drivetype 2 ( clé USB)


Next

End Sub
Bonjour
Mais Il semble que "objdisk.eject" ne soit pas gérée par windows 11
Merci
 

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT