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

Vba, verfügbare Laufwerke ermitteln

Forumthread: Vba, verfügbare Laufwerke ermitteln

Vba, verfügbare Laufwerke ermitteln
17.12.2007 19:34:03
Reinhard
Hallo Wissende,
ich möchte wissen welche Laufwerke derzeit verfügbar/durchsuchbar sind, also Diskettenlaufwerke nur
wenn eine Diskette eingelegt ist, CD-Rom Laufwerke nur wenn eine CD drinnen ist.
Derzeit trickse ich mit Fehlerauswertung bei Dir().
Gibt es einen saubereren Weg, FSO,API?

Sub Laufwerke()
Dim L As Byte, Anz As Byte, Dummy As String
For L = 0 To 25
On Error Resume Next
Dummy = Dir(Chr(65 + L) & ":\") ' "" Then 'C-Z
If Err  68 And Err  76 Then 'ggfs. If Err=0
Anz = Anz + 1
ReDim Preserve Lw(Anz)
Lw(Anz) = Chr(65 + L) & ":\"
End If
On Error GoTo 0
Next L
End Sub


Gruß
Reinhard

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vba, verfügbare Laufwerke ermitteln
17.12.2007 19:45:00
ransi
HAllo Rheinhard
FSO ist immer gut...;-)
Versuch mal:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************



Public Sub test()
Dim Fs
Dim lw
Set Fs = CreateObject("Scripting.filesystemobject")
For Each lw In Fs.drives
    If lw.isready Then MsgBox lw
Next
End Sub

ransi

Anzeige
AW: Vba, verfügbare Laufwerke ermitteln
17.12.2007 19:54:00
Reinhard
Hallo ransi,
danke dir, dachte mir schon daß es evtl. mit FSO gehen könnte, habe aber dazu leider kaum Unterlagen oder Ahnung.
Wenn ich mich nicht mehr melde kannst du davon ausgehen, daß es bestens funktioniert:-)
Gruß
Reinhard
;
Anzeige
Anzeige

Infobox / Tutorial

Verfügbare Laufwerke in Excel VBA ermitteln


Schritt-für-Schritt-Anleitung

Um verfügbare Laufwerke in Excel VBA zu ermitteln, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub Laufwerke()
       Dim L As Byte, Anz As Byte, Dummy As String
       For L = 0 To 25
           On Error Resume Next
           Dummy = Dir(Chr(65 + L) & ":\") ' Überprüfe Laufwerke A-Z
           If Err <> 68 And Err <> 76 Then ' Fehlerbehandlung
               Anz = Anz + 1
               ReDim Preserve Lw(Anz)
               Lw(Anz) = Chr(65 + L) & ":\"
           End If
           On Error GoTo 0
       Next L
    End Sub
  4. Führe das Skript aus:

    • Klicke auf Ausführen oder drücke F5, um das Skript zu starten.
  5. Prüfe die Ergebnisse:

    • Die verfügbaren Laufwerke werden in der Variablen Lw gespeichert.

Häufige Fehler und Lösungen

  • Fehler 68: "Datei nicht gefunden"

    • Lösung: Dieser Fehler tritt auf, wenn das Laufwerk nicht vorhanden ist. Stelle sicher, dass das Laufwerk angeschlossen und korrekt erkannt wird.
  • Fehler 76: "Pfad nicht gefunden"

    • Lösung: Überprüfe, ob das Laufwerk korrekt identifiziert wird oder ob es nicht entfernt wurde.

Alternative Methoden

Eine alternative Möglichkeit ist die Verwendung des FileSystemObject (FSO). Hier ist ein Beispiel, das dir zeigt, wie du FSO einsetzen kannst:

Public Sub Test()
    Dim Fs As Object
    Dim lw As Object
    Set Fs = CreateObject("Scripting.FileSystemObject")

    For Each lw In Fs.Drives
        If lw.IsReady Then
            MsgBox lw
        End If
    Next
End Sub

Diese Methode bietet eine einfachere Handhabung und liefert dir eine direkte Rückmeldung über die verfügbaren Laufwerke.


Praktische Beispiele

Nehmen wir an, du möchtest eine Liste der verfügbaren Laufwerke in einer Excel-Tabelle ausgeben. Du könntest den folgenden Code verwenden:

Sub LaufwerkeInTabelle()
    Dim L As Byte, Anz As Byte
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets(1) ' Erste Tabelle

    For L = 0 To 25
        On Error Resume Next
        If Dir(Chr(65 + L) & ":\") <> "" Then
            Anz = Anz + 1
            ws.Cells(Anz, 1).Value = Chr(65 + L) & ":\"
        End If
        On Error GoTo 0
    Next L
End Sub

Dieser Code listet alle verfügbaren Laufwerke in der ersten Spalte der ersten Tabelle auf.


Tipps für Profis

  • Fehlerbehandlung optimieren: Verwende On Error GoTo für eine präzisere Fehlerbehandlung.
  • Ergebnisse speichern: Überlege dir, wie du die Ergebnisse weiterverarbeiten möchtest, z.B. durch Speichern in einer Datei oder Datenbank.
  • Performance verbessern: Wenn du viele Laufwerke abfragen möchtest, nutze die Application.ScreenUpdating = False-Einstellung, um die Performance zu optimieren.

FAQ: Häufige Fragen

1. Wie kann ich die Laufwerke in einer Benutzeroberfläche anzeigen?
Du kannst die Laufwerke in einem MessageBox oder in einer UserForm darstellen, um die Benutzererfahrung zu verbessern.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der gezeigte Code sollte in den meisten modernen Excel-Versionen ab Excel 2007 funktionieren. Stelle jedoch sicher, dass die VBA-Umgebung aktiviert ist.

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