Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prüfen ob Pfadangabe korrekt mit Backslash

Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 12:47:02
Kasimir
Hi,
kann man in einer TextBox prüfen, ob dort eine gültige Pfadangabe, z.B. C:\Eigene Dateien\ eingetragen wurde? Hintergrund, ich möchte in einem Textfeld in einer UserForm veranlassen, dass dort eine gültige Pfadangabe eingetragen wird, weiß aber nicht wie. Vor allem ist wichtig, ob der Backslash richtig mit eingetragen wurde.
Kann man das?
Gruß, Kasimir

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 13:05:33
Uduuh
Hallo,
so geht's:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Dir(TextBox1, vbDirectory) = "" Then
MsgBox "Das ist kein Pfad"
TextBox1.SetFocus
End If
If Right(TextBox1, 1) <> "\" Then TextBox1 = TextBox1 & "\"
End Sub

Gruß aus’m Pott
Udo

AW: Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 13:22:21
Kasimir
Hi Udo,
soweit schon nicht schlecht, aber wenn der Backslash nach der Laufwerksangabe nicht eingetragen wird, funktioniert das ganze nicht. Als Beispiel, es wird anstelle C:\Eigene Dateien\ nur C:Eigene Dateien\ (also der Backslash hinter "C:" fehlt) angegeben. Dann müsste auch eine Meldung erscheinen, weil das ja auch keine korrekte Pfadangabe ist.
Verstehst Du was ich meine?
Gruß, Kasi
Anzeige
AW: Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 14:15:26
u_
Hallo,
natürlich funzt das! Der Code prüft, ob es den Pfad gibt.
Hast du das getestet?
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 14:34:40
Kasimir
Hi u,
soweit ist das richtig. Nur bei mir reicht es nicht aus zu prüfen ob es das Verzeichnis gibt, da bei Eingabe eines Verzeichnisses, das nicht gefunden wird, dieses angelegt wird. Es geht eigentlich um den Backslash nach der Laufwerksangabe.
Wobei mir jetzt eine Idee gekommen ist über die Mid-Funktion zu Prüfen, ob das 4 Zeichen ein Backslash ist. Wenn nicht, dann an die 4 Stelle einen hinschreiben. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.
Wenn ich den Code fertig habe poste ich ihn hier.
Danke und Gruß Kasi
Anzeige
AW: Prüfen ob Pfadangabe korrekt mit Backslash
22.06.2006 14:43:28
u_
Hallo,
das 3. Zeichen muss ein \ sein, nicht das 4.
c:\
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Hier die fertige Lösung!
22.06.2006 14:53:06
Kasimir
Hi, ich nochmal.
Wie versprochen hier meine Lösung.
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Pfad As Variant, i As Integer
If Mid(TextBox1.Text, 3, 1) = "\" Then Exit Sub
If Len(TextBox1.Text) > 3 Then
    For i = 1 To Len(TextBox1.Text)
        If i = 3 Then
            Pfad = Pfad & "\" & Mid(TextBox1.Text, i, 1)
        Else
            Pfad = Pfad & Mid(TextBox1.Text, i, 1)
        End If
    Next
    Range("E23") = Pfad
Else
    Range("E23") = TextBox1.Text & "\"
End If
End Sub
Mit dem Code wird wenn in der TextBox ein Text mit mehr als drei Buchstaben vorhanden sind und an der 3. Stelle kein Backslash vorhanden ist dieses Zeichen hinzugefügt. Besteht der Text aus nur 2 Zeichen wird am Ende ein Backslash angefügt.
So müsste es eigentlich funktionieren. Sollte jemand ein fehler finden, so bitte ich darum dies hier zu melden, damit ich das dann nochmal abändern kann.
Gruß, Kasimir
Anzeige
AW: Hier die fertige Lösung!
22.06.2006 23:29:30
Daniel
Hallo,
eine korrekte Pfad-Angabe muß folgenden Bedingungen genügen:
a) an 2. und 3. Stelle steht ":\"
b) am Ende steht "\"
c) folgende Zeichen dürfen nicht vorhanden sein: ?*"|:/
dh. ich würde eine Pfadprüfung so ablaufen lassen:

Sub PfadPrüfung()
Dim VerboteneZeichen, Pfad As String
Dim i As Long
Dim PfadOK As Boolean
Do
Pfad = InputBox("")
PfadOK = True
'----Prüfung Laufwerk
If Mid(Pfad, 2, 2) <> ":\" Then
PfadOK = False
MsgBox ("Laufwerksbezeichnung nicht korrekt")
End If
'---- Prüfung Verbotene Zeichen
VerboteneZeichen = "<>|*:/" & Chr(34)
For i = 1 To Len(VerboteneZeichen)
If InStr(Mid(Pfad, 3), Mid(VerboteneZeichen, i, 1)) <> 0 Then
MsgBox ("Verbotenes Zeichen " & VerboteneZeichen & " entdeckt")
PfadOK = False
Exit For
End If
Next
'---- Prüfung  Pfadende
If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
Loop Until PfadOK Or Pfad = "xxx"
MsgBox ("Sie haben einen korrekten Pfad eingegeben." & Chr(10) & Pfad)
End Sub

das xxx habe ich eingebaut, damit man die

Sub verlassen kann, falls man sich in einer Endlosschleife fängt
Gruß, Daniel

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige