Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : liste des volumes accessibles

9 réponses
Avatar
Jac
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac

9 réponses

Avatar
Jac
... et questions subsidiaires : taille des volumes, taille de la zone
occupée ou vide.

"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis le PC actif et parmi les volumes trouvés, j'aimerais aussi
identifier les volumes sur lesquels je ne peux pas écrire (clé USB
verrouillée, volume en lecture seule, ...) ainsi que les lecteurs de CD /
DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac


Avatar
MichDenis
Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news: %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac
Avatar
MichDenis
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller !
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news: %
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac
Avatar
Jac
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






Avatar
MichDenis
Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" a écrit dans le message de news: %
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






Avatar
MichDenis
Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis" a écrit dans le message de news:

Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" a écrit dans le message de news: %
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac






Avatar
Jac
Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis" a écrit dans le message de news:

Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis" a écrit dans le message de news:

Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" a écrit dans le message de news:
%
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac












Avatar
MichDenis
| Et comme je ne trouve rien dans l'aide à ce sujet, je m'en remets à toi...

Les propriétés disponibles sont là :

http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_czxq.mspx?mfr=true


Et si tu désires des info. plus techniques sur les partitions de tes disques durs,
il y a ceci : (Windows vista, Xp , 2000, windows Server 2003)

'-------------------------------
Sub test()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition")
For Each objPartition In colDiskPartitions
Message = Message & "Block Size: " & vbTab & objPartition.BlockSize & vbCrLf
Message = Message & "Bootable: " & vbTab & objPartition.Bootable & vbCrLf
Message = Message & "Boot Partition: " & vbTab & objPartition.BootPartition & vbCrLf
Message = Message & "Description: " & vbTab & objPartition.Description & vbCrLf
Message = Message & "Device ID: " & vbTab & objPartition.DeviceID & vbCrLf
Message = Message & "Disk Index: " & vbTab & objPartition.DiskIndex & vbCrLf
Message = Message & "Index: " & vbTab & objPartition.Index & vbCrLf
Message = Message & "Name: " & vbTab & objPartition.Name & vbCrLf
Message = Message & "Number Of Blocks: " & vbTab & _
objPartition.NumberOfBlocks & vbCrLf
Message = Message & "Primary Partition: " & vbTab & _
objPartition.PrimaryPartition & vbCrLf
Message = Message & "Size: " & vbTab & objPartition.Size & vbCrLf
Message = Message & "Starting Offset: " & vbTab & _
objPartition.StartingOffset & vbCrLf
Message = Message & "Type: " & vbTab & objPartition.Type & vbCrLf
MsgBox Message
Message = ""
Next

End Sub
'-------------------------------


"Jac" a écrit dans le message de news: %
Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis" a écrit dans le message de news:

Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis" a écrit dans le message de news:

Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" a écrit dans le message de news:
%
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac












Avatar
Jac
Merci beaucoup pour tout ce temps passé à m'apporter une solution.

J'ai une amorce de solution à propos des tailles calculées par XL et celles
affichées par l'explorateur en divisant les gigas par 1048576 (1024 * 1024).
Moi, je divisais par 1 million tout simplement.
Pour le reste, avec technet, j'ai de la lecture pour les longues soirées
d'hiver que je qualifierais plutôt de courtes devant un clavier...

Jac

"MichDenis" a écrit dans le message de news:
Ob7fb%
| Et comme je ne trouve rien dans l'aide à ce sujet, je m'en remets à
toi...

Les propriétés disponibles sont là :

http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_czxq.mspx?mfr=true


Et si tu désires des info. plus techniques sur les partitions de tes
disques durs,
il y a ceci : (Windows vista, Xp , 2000, windows Server 2003)

'-------------------------------
Sub test()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition")
For Each objPartition In colDiskPartitions
Message = Message & "Block Size: " & vbTab & objPartition.BlockSize &
vbCrLf
Message = Message & "Bootable: " & vbTab & objPartition.Bootable &
vbCrLf
Message = Message & "Boot Partition: " & vbTab &
objPartition.BootPartition & vbCrLf
Message = Message & "Description: " & vbTab & objPartition.Description
& vbCrLf
Message = Message & "Device ID: " & vbTab & objPartition.DeviceID &
vbCrLf
Message = Message & "Disk Index: " & vbTab & objPartition.DiskIndex &
vbCrLf
Message = Message & "Index: " & vbTab & objPartition.Index & vbCrLf
Message = Message & "Name: " & vbTab & objPartition.Name & vbCrLf
Message = Message & "Number Of Blocks: " & vbTab & _
objPartition.NumberOfBlocks & vbCrLf
Message = Message & "Primary Partition: " & vbTab & _
objPartition.PrimaryPartition & vbCrLf
Message = Message & "Size: " & vbTab & objPartition.Size & vbCrLf
Message = Message & "Starting Offset: " & vbTab & _
objPartition.StartingOffset & vbCrLf
Message = Message & "Type: " & vbTab & objPartition.Type & vbCrLf
MsgBox Message
Message = ""
Next

End Sub
'-------------------------------


"Jac" a écrit dans le message de news:
%
Impec... Juste que "objDrive.TotalSize " me donne la capacité totale du
disque du genre 500 Go alors que le disque formaté, donc utile, n'en fait
plus que 465 ! Et comme je ne trouve rien dans l'aide à ce sujet, je m'en
remets à toi...

"MichDenis" a écrit dans le message de news:

Remplace ceci :
Dim objDrive As Drive

Par
Dim objDrive As Object

Cela t'évitera de charger la référence mentionnée dans
le message précédent.

et tu peux enlever cette ligne de la procédure
" t = objDrive.TotalSize"



"MichDenis" a écrit dans le message de news:

Sub test1()
Dim objDrive As Drive
Dim HD As String
Dim objFSO As Object
Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

For Each objDrive In colDrives
Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & _
"Inconnu, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 1
t = objDrive.TotalSize
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Removable, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 2
HD = HD & objDrive.DriveLetter & " : " & _
"Fixe, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf

Case 3
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"Remote, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 4
If objDrive.IsReady Then
HD = HD & objDrive.DriveLetter & " : " & _
"CDRom, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End If
Case 5
HD = HD & objDrive.DriveLetter & " : " & _
"RamDisk, " & " Capacité : " & _
objDrive.TotalSize & ", Espace disponible : " & _
objDrive.FreeSpace & vbCrLf
End Select
Next
MsgBox HD
End Sub










"Jac" a écrit dans le message de news:
%
Bonjour MichDenis,

impec, ça m'affiche tout, dont les partitions, mais n'ai pas besoin de
les
identifier comme telles.

Y a-t'il moyen d'avoir quelques renseignements sur la taille et la place
occupée ou libre ?


"MichDenis" a écrit dans le message de news:
e5eGW%
Attention : Il y a deux Case 1 suite à une maladresse d'un
copier-coller
!
Évidemment, tu en supprimes UN.



"MichDenis" a écrit dans le message de news:

Essaie ceci :
As-tu besoin d'identifier chacune des partitions sur les disques dur ?
La proposition ne fait qu'identifier la lettre du disque et le type de
support .


'-------------------------------------
Sub test1()

Dim HD As String
Dim objFSO As Object

'Les constantes sont utilisables seulement tu ajoutes
'la bibliothèques "Microsoft Scripting RunTime"
'Elles sont là comme aide mémoire ...
'Dim x As DriveTypeConst
'x = CDRom -> 4
'x = Fixed -> 2
'x = RamDisk -> 5
'x = Remote -> 3
'x = Removable -> 1
'x = UnknownType -> 0

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive In colDrives

Select Case objDrive.DriveType
Case 0
HD = HD & objDrive.DriveLetter & " : " & "Inconnu" & vbCrLf

Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf
Case 1
HD = HD & objDrive.DriveLetter & " : " & "Removable" & vbCrLf

Case 2
HD = HD & objDrive.DriveLetter & " : " & "fixe" & vbCrLf

Case 3
HD = HD & objDrive.DriveLetter & " : " & "Remote" & vbCrLf

Case 4
HD = HD & objDrive.DriveLetter & " : " & "CDRom" & vbCrLf
Case 5
HD = HD & objDrive.DriveLetter & " : " & "RamDisk" & vbCrLf
End Select
Next
MsgBox HD
End Sub
'-------------------------------------




"Jac" a écrit dans le message de news:
%
Bonjour à tous,

j'aurais besoin de récupérer la liste de tous les volumes accessibles
depuis
le PC actif et parmi les volumes trouvés, j'aimerais aussi identifier
les
volumes sur lesquels je ne peux pas écrire (clé USB verrouillée, volume
en
lecture seule, ...) ainsi que les lecteurs de CD / DVD.

Merci d'avance à qui aurait quelques phrases magiques pour y arriver.

Jac