Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Problem beim Zugriff auf Laufwerk/Ordner

Betrifft: Problem beim Zugriff auf Laufwerk/Ordner von: oxe 23
Geschrieben am: 14.08.2008 11:08:56

Hallo zusammen!

Es geht um unten angehängten Quelltext, der macht Probleme...

Wenn ich das bei mir ausführe klappt alles, ist das Laufwerk und der Ordner da, dann setzt er die Datei auf schreibgeschützt, wenn er aber das Laufwerk nicht hat oder der Ordner nicht existiert kommt die gewünschte Meldung, man klickt auf OK und weiter geht's.

Bei einem Kollegen allerdings, der das P:-Laufwerk nicht hat, funktioniert das nicht. Er hat das gleiche Office-System. Aber bei ihm bleibt Excel immer in der If-Zeile hängen und springt in den Debugger. Wenn er statt P: testweise C: eingibt funktioniert es, dann kommt die Meldung dass der Ordner nicht gefunden wurde, ist ja klar, da die Ordnerstruktur auf C: nicht existiert.

Was ist da los, kann mir jemand weiterhelfen?

achja:
Blatt "00_Bearbeiter" -> Zelle "F12" -> Inhalt "P:\1\1234A12\0000\100\Listen\Excel_Listen\Liste07.xls"

Sub andereSperren()

Dim wks_00_Bearbeiter As Worksheet
Set wks_00_Bearbeiter = ThisWorkbook.Worksheets("00_Bearbeiter")

If Dir(wks_00_Bearbeiter.Cells(12, 6), vbDirectory) = "" Then
    MsgBox "Datei - " & wks_00_Bearbeiter.Cells(12, 6) & " - nicht gefunden!"
    Exit Sub
End If
SetAttr (wks_00_Bearbeiter.Cells(12, 6)), 1

End Sub


  

Betrifft: AW: Problem beim Zugriff auf Laufwerk/Ordner von: Ramses
Geschrieben am: 14.08.2008 11:19:21

Hallo

Das kann ja nicht funktionieren, weil das Laufwerk ja schon nicht vorhanden ist. Du prüfst ja nur, ob das Directory vorhanden ist.

Ob das Laufwerk überhaupt existiert kannst du so prüfen

Option Explicit

Function CheckDrive(chkDrive As String) As String
    '(c) ramses
    Dim myFSO As Object, myDrv As Object, drvCount, drvStr As String, vName As String, drvTyp As String
    Dim drvmax As Byte, drvNum As Byte
    Set myFSO = CreateObject("Scripting.FileSystemObject")
    Set drvCount = myFSO.Drives
    For Each myDrv In drvCount
        If myDrv.Driveletter = chkDrive Then
            CheckDrive = True
            Exit Function
        End If
    Next
    CheckDrive = False
End Function


Aufgerufen wird die Funktion mit

If CheckDrive("P") = False Then
msgbox "Das Laufwerk existiert nicht"
Exit sub
End if

Danach deinen normale "If Dir(...)" routine

Gruss Rainer


  

Betrifft: Korrektur von: Ramses
Geschrieben am: 14.08.2008 11:20:30

Sorry

die Funktion muss natürlich

Function CheckDrive(chkDrive As String) As Boolean

lauten

Gruss Rainer


  

Betrifft: AW: Korrektur von: oxe 23
Geschrieben am: 14.08.2008 11:25:55

Ok, danke, sowas hatte ich auch schon überlegt.

Aber was mich halt wundert bzw ich gerne wüsste:

Warum funktioniert es bei mir auch wenn ich ein Laufwerk angebe, das gar nicht existiert, aber biem Kollegen nicht? Ich gebe beispielsweise statt P: einfach Q: an und bei mir kommt die MsgBox...


  

Betrifft: AW: Korrektur von: Ramses
Geschrieben am: 14.08.2008 11:27:53

Hallo

Keine Ahnung,... das musst du MS fragen :-)

Gruss Rainer


  

Betrifft: AW: Korrektur von: oxe 23
Geschrieben am: 14.08.2008 11:28:28

Alles klar ;-]

Danke sehr trotzdem!


 

Beiträge aus den Excel-Beispielen zum Thema "Problem beim Zugriff auf Laufwerk/Ordner"