OVH Cloud OVH Cloud

lire l'espace disque

5 réponses
Avatar
Zambohanga
Bonjour à tous,
Je suis à la recherche d'une macro qui permettrait de lire l'espace disque
libre et l'espace utilisé en vba.
Je suppose que cela est possible, compte tenu des capacités des bricolos
exceliens !?
J'ai bien fait une recherche sur google, mais je n'ai encore rien trouvé
Merci d'avance

Z

5 réponses

Avatar
Michel Pierron
Bonjour Zambohanga;

Sub DiskInfos()
Dim fs, d
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName("C:")))
MsgBox "Lecteur " & d.DriveLetter & ":" & vbLf _
& "Taille totale : " & vbTab & FormatNumber(d.TotalSize / 1024, 0) _
& " Kilo-octets" & vbLf & "Disponible : " & vbTab _
& FormatNumber(d.AvailableSpace / 1024, 0) & " Kilo-octets"
End Sub

MP

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

Bonjour à tous,
Je suis à la recherche d'une macro qui permettrait de lire l'espace disque
libre et l'espace utilisé en vba.
Je suppose que cela est possible, compte tenu des capacités des bricolos
exceliens !?
J'ai bien fait une recherche sur google, mais je n'ai encore rien trouvé
Merci d'avance

Z




Avatar
AV
Aussi :

Sub zzz_Info()
Dim zz As Object
Set zz = CreateObject("Scripting.FileSystemObject")
'pour le disque D (à adapter !)
MsgBox "Taille = " & zz.Drives.Item("D").TotalSize
MsgBox "Place dispo = " & zz.Drives.Item("D").FreeSpace
End Sub

AV
Avatar
Alain CROS
Bonjour.

Michel étant passé au scripting, voilà une version API.

Private Declare Function GetDiskFreeSpaceEx& Lib "kernel32" Alias "GetDiskFreeSpaceExA" _
(ByVal lpDirectoryName$, ByRef lpFreeBytesAvailableToCaller As ULARGE_INTEGER, _
ByRef lpTotalNumberOfBytes As ULARGE_INTEGER, ByRef lpTotalNumberOfFreeBytes As ULARGE_INTEGER)

Private Type ULARGE_INTEGER
LowPart As Long
HighPart As Long
End Type

Sub EspaceLibre()
Const OtoMo# = 1024& * 1024& * 1024&, Echl& = 100&
Dim Fbatc As ULARGE_INTEGER, Tnob As ULARGE_INTEGER, Tnofb As ULARGE_INTEGER
GetDiskFreeSpaceEx vbNullString, Fbatc, Tnob, Tnofb
MsgBox "Espace Utile = " & vbTab & Int(ULngIntToDbl(Fbatc) * Echl / OtoMo) / Echl & _
" Mo" & vbNewLine & "Espace Totale = " & vbTab & _
Int(ULngIntToDbl(Tnob) * Echl / OtoMo) / Echl & " Mo" & vbNewLine & _
"Espace Libre = " & vbTab & Int(ULngIntToDbl(Tnofb) * Echl / OtoMo) / Echl & _
" Mo", , "Caractéristique du lecteur courrant"
End Sub

Function ULngIntToDbl#(ULong As ULARGE_INTEGER)
With ULong
If .LowPart < 0& Then
ULngIntToDbl = CDbl(.LowPart Xor &H80000000) + &H7FFFFFFF + 1&
Else
ULngIntToDbl = CDbl(.LowPart)
End If
ULngIntToDbl = ULngIntToDbl + .HighPart * 4294967296#
End With
End Function

Alain CROS

"Zambohanga" a écrit dans le message de news:
| Bonjour à tous,
| Je suis à la recherche d'une macro qui permettrait de lire l'espace disque
| libre et l'espace utilisé en vba.
| Je suppose que cela est possible, compte tenu des capacités des bricolos
| exceliens !?
| J'ai bien fait une recherche sur google, mais je n'ai encore rien trouvé
| Merci d'avance
|
| Z
|
|
Avatar
Zambohanga
Merci à tous, je savais que je pouvais compter sur vous
Je vais tester tout ca et vous tiens au courant dans le fil
Z

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

Bonjour à tous,
Je suis à la recherche d'une macro qui permettrait de lire l'espace disque
libre et l'espace utilisé en vba.
Je suppose que cela est possible, compte tenu des capacités des bricolos
exceliens !?
J'ai bien fait une recherche sur google, mais je n'ai encore rien trouvé
Merci d'avance

Z



Avatar
Zambohanga
Merci pour la macro
Petite correction à faire, les données sont à exprimer en Go et pas Mo. A
part ca c'est que du bonheur

Merci

Z
"Alain CROS" a écrit dans le message de news:

Bonjour.

Michel étant passé au scripting, voilà une version API.

Private Declare Function GetDiskFreeSpaceEx& Lib "kernel32" Alias
"GetDiskFreeSpaceExA" _
(ByVal lpDirectoryName$, ByRef lpFreeBytesAvailableToCaller As
ULARGE_INTEGER, _
ByRef lpTotalNumberOfBytes As ULARGE_INTEGER, ByRef
lpTotalNumberOfFreeBytes As ULARGE_INTEGER)

Private Type ULARGE_INTEGER
LowPart As Long
HighPart As Long
End Type

Sub EspaceLibre()
Const OtoMo# = 1024& * 1024& * 1024&, Echl& = 100&
Dim Fbatc As ULARGE_INTEGER, Tnob As ULARGE_INTEGER, Tnofb As
ULARGE_INTEGER
GetDiskFreeSpaceEx vbNullString, Fbatc, Tnob, Tnofb
MsgBox "Espace Utile = " & vbTab & Int(ULngIntToDbl(Fbatc) * Echl /
OtoMo) / Echl & _
" Mo" & vbNewLine & "Espace Totale = " & vbTab & _
Int(ULngIntToDbl(Tnob) * Echl / OtoMo) / Echl & " Mo" & vbNewLine &
_
"Espace Libre = " & vbTab & Int(ULngIntToDbl(Tnofb) * Echl / OtoMo)
/ Echl & _
" Mo", , "Caractéristique du lecteur courrant"
End Sub

Function ULngIntToDbl#(ULong As ULARGE_INTEGER)
With ULong
If .LowPart < 0& Then
ULngIntToDbl = CDbl(.LowPart Xor &H80000000) + &H7FFFFFFF + 1&
Else
ULngIntToDbl = CDbl(.LowPart)
End If
ULngIntToDbl = ULngIntToDbl + .HighPart * 4294967296#
End With
End Function

Alain CROS

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

| Bonjour à tous,
| Je suis à la recherche d'une macro qui permettrait de lire l'espace
disque
| libre et l'espace utilisé en vba.
| Je suppose que cela est possible, compte tenu des capacités des bricolos
| exceliens !?
| J'ai bien fait une recherche sur google, mais je n'ai encore rien trouvé
| Merci d'avance
|
| Z
|
|