Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

freien Speicherplatz auslesen

Forumthread: freien Speicherplatz auslesen

freien Speicherplatz auslesen
20.01.2009 23:06:00
Schmausi
Heilo Leute
habe im Archiv folgendes Problem gefunden:
Problem: Der freie Speicherplatz eines abzufragenden Laufwerks ist zu ermitteln.
StandardModule: Modul1

Sub Festplatte()
Dim var As Variant
Dim sLW As String, sSpace As String, sFile As String
sLW = InputBox("Laufwerk:", , "c")
If sLW = "" Then Exit Sub
sLW = Left(sLW, 1)
sFile = sLW & ":\dirliste.txt"
var = Shell("command.com /c dir *.xls >" & sFile, vbHide)
Application.Wait Now + TimeSerial(0, 0, 1)
Close
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sSpace
Loop
Close
sSpace = Trim(sSpace)
sSpace = Right(sSpace, Len(sSpace) - InStr(sSpace, "  "))
sSpace = Trim(sSpace)
sSpace = Left(sSpace, InStr(sSpace, " ") - 1)
MsgBox "Freie MB auf Laufwerk " & sLW & ":" & vbLf & sSpace
Kill sFile
End Sub


Als ich es an meinem Rechner ausprobierte erhielt ich für die unterschieblichen Laufwerke immer wieder das selbe Ergebnis.
Hab ich da was verkehrt auf meinem Rechner?
Frage vom Schmausi

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: freien Speicherplatz auslesen
20.01.2009 23:53:09
Nepumuk
Hallo Schmausi,
so:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" ( _
    ByVal lpRootPathName As String, _
    ByRef lpSectorsPerCluster As Long, _
    ByRef lpBytesPerSector As Long, _
    ByRef lpNumberOfFreeClusters As Long, _
    ByRef lpTtoalNumberOfClusters As Long) As Long

Public Function Free_Space(strDir As String) As Single
    
    Dim lngSectors As Long, lngBytes As Long, lngFree As Long, lngTotal As Long
    Dim sngSectors As Single, sngBytes As Single, sngFree As Single
    
    '//retrieve information about the disk
    Call GetDiskFreeSpace(strDir, lngSectors, lngBytes, lngFree, lngTotal)
    
    '//change dimension
    sngSectors = lngSectors
    sngBytes = lngBytes
    sngFree = lngFree
    
    '//return free diskspace
    Free_Space = (sngSectors * sngBytes * sngFree) / 1024 / 1024 / 1024
    
End Function

Public Sub Test()
    MsgBox Free_Space("C:") & " GB"
End Sub

Gruß
Nepumuk
Anzeige
AW: freien Speicherplatz auslesen
23.01.2009 07:50:00
Schmausi
Heilo Nepumuk
gut geklappt
Dank
und noch eine Möglichkeit
21.01.2009 07:29:15
Tino
Hallo,
so geht es auch
Sub Freiser_Speicher()
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Set LW = FSO.drives("C:")

MsgBox "Freier Speicherplatz auf " & LW.driveletter & Chr(13) & _
 Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " GB"

End Sub


Gruß Tino

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Freien Speicherplatz in Excel auslesen


Schritt-für-Schritt-Anleitung

Um den freien Speicherplatz eines Laufwerks in Excel zu ermitteln, kannst du die folgende VBA-Prozedur verwenden. Diese Methode ist besonders nützlich, wenn du den freien Speicherplatz für verschiedene Laufwerke anzeigen möchtest.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub Festplatte()
       Dim var As Variant
       Dim sLW As String, sSpace As String, sFile As String
       sLW = InputBox("Laufwerk:", , "c")
       If sLW = "" Then Exit Sub
       sLW = Left(sLW, 1)
       sFile = sLW & ":\dirliste.txt"
       var = Shell("command.com /c dir *.xls >" & sFile, vbHide)
       Application.Wait Now + TimeSerial(0, 0, 1)
       Close
       Open sFile For Input As #1
       Do Until EOF(1)
           Line Input #1, sSpace
       Loop
       Close
       sSpace = Trim(sSpace)
       sSpace = Right(sSpace, Len(sSpace) - InStr(sSpace, "  "))
       sSpace = Trim(sSpace)
       sSpace = Left(sSpace, InStr(sSpace, " ") - 1)
       MsgBox "Freie MB auf Laufwerk " & sLW & ":" & vbLf & sSpace
       Kill sFile
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.


Häufige Fehler und Lösungen

  • Problem: Das Skript zeigt für alle Laufwerke den gleichen freien Speicherplatz an.

    • Lösung: Überprüfe, ob das Laufwerk korrekt eingegeben wurde. Stelle sicher, dass du die Eingabeaufforderung mit dem richtigen Laufwerksbuchstaben verwendest.
  • Problem: Fehlermeldung beim Ausführen des Makros.

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Du kannst dies unter Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> Makroeinstellungen überprüfen.

Alternative Methoden

Eine weitere Möglichkeit, den freien Speicherplatz auszulesen, ist die Verwendung des FileSystemObject in VBA. Hier ist ein einfaches Beispiel:

Sub Freier_Speicher()
    Dim FSO As Object, LW As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set LW = FSO.Drives("C:")

    MsgBox "Freier Speicherplatz auf " & LW.DriveLetter & vbCrLf & _
           Round(LW.AvailableSpace / 1024 / 1024 / 1024, 1) & " GB"
End Sub

Diese Methode zeigt dir den festplattenspeicher direkt in einer Nachricht an.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die obigen Methoden:

  1. Freien Speicherplatz auf verschiedenen Laufwerken anzeigen:

    • Ändere den Laufwerksbuchstaben im InputBox-Feld, um den Speicherplatz auf anderen Laufwerken zu überprüfen.
  2. Automatisierung:

    • Füge den Code in ein größeres Automatisierungsprojekt ein, um regelmäßig den festplattenspeicher zu überwachen und Berichte zu erstellen.

Tipps für Profis

  • Verwende die MsgBox-Funktion nicht nur zur Anzeige, sondern speichere die Ergebnisse auch in einer Excel-Zelle für eine bessere Dokumentation.
  • Du kannst den Code anpassen, um auch den gesamten Festplattenspeicher anzuzeigen, indem du lngTotal in deine Berechnungen einbeziehst.

FAQ: Häufige Fragen

1. Wie kann ich den freien Speicherplatz für mehrere Laufwerke gleichzeitig abfragen? Du kannst eine Schleife implementieren, die alle Laufwerksbuchstaben durchläuft und den Speicherplatz für jedes Laufwerk abfragt.

2. Funktioniert dieser Code in Excel 2016 und höher? Ja, die oben genannten Methoden funktionieren in Excel 2016 und höher, solange die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige