¿Espacio en disco? ¿Utilizado, Libre o Total?
Te doy una idea para obtener el espacio libre en disco a partir de un directorio: Añade esta función en el código VB del proyecto de Excel:
(Comprueba que añades la referencia "Microsoft Scripting Runtime")
Código:
'********************************************************************************
'Nombre: lObtenerEspacioLibreUnidad
'Descripción: Obtiene el espacio libre de la unidad correspondiente al directorio
' recibido como parámetro en Kbytes:
' Si no existe devuelve -2.
' Si se produce algún error devuelve -3.
'Referencias utilizadas: "Microsoft Scripting Runtime".
'Fecha: 09/06/2005
'********************************************************************************
Function lObtenerEspacioLibreUnidad(v_sDirectorio As String) As Long
Dim fso As New FileSystemObject
Dim fldrCarpeta As Folder
Dim TamanoEnBytes
On Error GoTo Error_Espacio_Libre
' Si el texto del directorio no temina con "\", lo añado:
If (Right(v_sDirectorio, 1) <> "\") Then
v_sDirectorio = v_sDirectorio + "\"
End If
' Se comprueba que el directorio exista.
If (Dir(v_sDirectorio) = "") Then
lObtenerEspacioLibreUnidad = -2
Else
Set fldrCarpeta = fso.GetFolder(v_sDirectorio)
' Se obtiene el espacio libre en bytes.
TamanoEnBytes = fldrCarpeta.Drive.FreeSpace
' Se devuelve el tamaño en Kbytes.
lObtenerEspacioLibreUnidad = CLng(TamanoEnBytes / 1024)
End If
Exit Function
Error_Espacio_Libre:
lObtenerEspacioLibreUnidad = -3
End Function
Y lo llamas con un procedimiento (que a su vez podrás verlo en las macros de Excel) como éste:
Código:
Sub Espacio_Libre()
ActiveCell.FormulaR1C1 = CStr(lObtenerEspacioLibreUnidad("C:\"))
End Sub
Cambia de este procedimiento lo que te haga falta (como la dirección de un directorio existente en una máquina remota, o la selección de una celda concreta antes de actualizar el valor devuelto...).
A ver si te vale: saludos, Foxi.