Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro soll enden, wenn USB Stick n.v.

Makro soll enden, wenn USB Stick n.v.
15.04.2021 10:14:27
Christian
Hallo,
eine kurze Frage,
benutze unten stehendes Makro.
Das Laufwerk E befindet sich auf einem USB Stick.
Bislang kommt die Meldung "Pfad nicht gefunden", wenn der Stick nicht am Laptop eingesteckt ist. Gibt es die Möglichkeit, diese Meldung auszuschalten, sodass einfach ohne das die Dateien von Laufwerk E aufgelistet werden, die Spalte B leerbleibt?
Und entsprechend auch keine Fehlermeldung kommt?

Sub DateienAuflisten()
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("D:\Bilder")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
Set objVerzeichnis = objFileSystem.GetFolder("E:\Bilder")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 2) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 10:35:29
Nepumuk
Hallo Christian,
teste mal:
Public Sub Test()
Dim blnFound As Boolean
Dim objFileSytemObject As Object, objDrives As Object
Dim objDrive As Object
Set objFileSytemObject = CreateObject(Class:="Scripting.FileSystemObject")
Set objDrives = objFileSytemObject.Drives
For Each objDrive In objDrives
If objDrive.DriveLetter = "E" Then
blnFound = True
Set objDrive = Nothing
Exit For
End If
Next
Set objFileSytemObject = Nothing
Set objDrives = Nothing
If blnFound Then
'Dein Makro
Else
Call MsgBox("Laufwerk E nicht gefunden.", vbExclamation, "Hinweis")
End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 10:50:28
Christian
Hallo nepumuk,
bekomme die Meldung If-Block ohne End if, sehe aber irgendwie nicht wo das fehlt.
Aber zum anderen, ich befürchte ich habe mich misverständlich ausgedrückt. Der Ordner D:\Bilder soll in jedem Fall eingelesen werden, dein Makro macht ja die Existenz von Laufwerk E zur Bedingung dass Laufwerk D eingelesen wird. Oder verstehe ich da was falsch?
Gruß
Christian
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:01:05
Nepumuk
Hallo Christian,
ich weiß nicht was du gelöscht hast. So klarer?
Public Sub Test()
Dim blnFound As Boolean
Dim objFileSytemObject As Object, objDrives As Object
Dim objDrive As Object
'Hier dein Makro für Laufwerk D
Set objFileSytemObject = CreateObject(Class:="Scripting.FileSystemObject")
Set objDrives = objFileSytemObject.Drives
For Each objDrive In objDrives
If objDrive.DriveLetter = "E" Then
blnFound = True
Set objDrive = Nothing
Exit For
End If
Next
Set objFileSytemObject = Nothing
Set objDrives = Nothing
If blnFound Then
'Hier dein Makro für Laufwerk E
Else
Call MsgBox("Laufwerk E nicht gefunden.", vbExclamation, "Hinweis")
End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:09:32
Christian
Hallo Nepumuk,
ok, so wird es klarer.
Habe dann jetzt folgendes gemacht, die Meldung mit if und end if kommt leider immer noch. Ich muss ja trotzdem immer noch auch die Variablen deklarieren, dich ich in meinem Makro nutze, daher habe ich es wie folgt gemacht:

Sub DateienAuflisten()
Dim objFileSytemObject As Object, objDrives As Object
Dim objDrive As Object
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("D:\Bilder")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
Set objFileSytemObject = CreateObject(Class:="Scripting.FileSystemObject")
Set objDrives = objFileSytemObject.Drives
For Each objDrive In objDrives
If objDrive.DriveLetter = "E" Then
blnFound = True
Set objDrive = Nothing
Exit For
End If
Next
Set objFileSytemObject = Nothing
Set objDrives = Nothing
If blnFound Then
Set objVerzeichnis = objFileSystem.GetFolder("E:\Bilder")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 2) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
End Sub

Anzeige
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:21:07
Nepumuk
Hallo Christian,
teste mal:
Public Sub DateienAuflisten()
Dim blnFound As Boolean
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Dim objDrives As Object
Dim objDrive As Object
Set objFileSystem = CreateObject(Class:="Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("D:\Bilder")
Set objDateienliste = objVerzeichnis.Files
For Each objDatei In objDateienliste
lngZeile = lngZeile + 1
Cells(lngZeile, 1) = objDatei.Name
Next objDatei
Set objDrives = objFileSystem.Drives
For Each objDrive In objDrives
If objDrive.DriveLetter = "E" Then
blnFound = True
Set objDrive = Nothing
Exit For
End If
Next
If blnFound Then
Set objVerzeichnis = objFileSystem.GetFolder("E:\Bilder")
Set objDateienliste = objVerzeichnis.Files
For Each objDatei In objDateienliste
lngZeile = lngZeile + 1
Cells(lngZeile, 2) = objDatei.Name
Next objDatei
End If
Set objDrives = Nothing
Set objVerzeichnis = Nothing
Set objDateienliste = Nothing
Set objFileSystem = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:30:55
Christian
Hallo Nepumuk,
so ganz leider immer noch nicht, obwohl das jezt denke ich nur noch eine Kleinigkeit ist.
Wenn der Stick nicht dransteckt ist alles super
Wenn er dransteckt passiert folgendes:
Dein Makro fängt bei Zelle B13754 (nachdem er 13753 Dateien aus Laufwerk D aufgelistet hat) an den Inhalt von Laufwerk E aufzulisten, mein ursprügliches Makro fing bei B1 an.
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:35:32
Nepumuk
Oooooooooops,
mein Fehler, ergänze das:
If blnFound Then
Zeile = 0

Gruß
Nepumuk
AW: Makro soll enden, wenn USB Stick n.v.
15.04.2021 11:37:53
Christian
kein Ding, du meinst lngzeile=0 oder?
damit hat es geklappt. Danke für deine Hilfe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige