Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Vergleich Dir(pfad, vbDirectory) mit String

Vergleich Dir(pfad, vbDirectory) mit String
22.07.2015 11:46:39
Joao
Hallo zusammen,
dies wird mein erster Post, vorige Probleme konnte ich bisher anhand anderer Posts lösen. Dafür schon mal vielen Dank.
So nun zu meinem Problem:
Sub test()
Dim wrdApp As Object
Dim infopflicht As Object
Dim nutzungsvertrag As Object
Dim maske As Object
Dim datenbank As Object
Dim projektname As String
Dim pfad As String
Dim vorname As String
Dim nachname As String
Dim namevorname As String
Dim namevorname1 As String
Dim str_suche As String
Set maske = ThisWorkbook.Worksheets("Maske")
Set datenbank = ThisWorkbook.Worksheets("Datenbank")
vorname = maske.Range("E11").Value
nachname = maske.Range("E12").Value
projektname = maske.Range("E1").Value
namevorname = nachname & "_" & vorname
pfad = "S:\Praktikanten\" & projektname & "\Standorte\" & namevorname
str_suche = Dir(pfad, vbDirectory)
If str_suche = namevorname Then
a = MsgBox("Verzeichnis existiert bereits. Dateien überschreiben?", vbYesNo)
If a = vbNo Then
Exit Sub
Else
GoTo Sprungmarke
End If
Else
a = MsgBox("Verzeichnis existiert nicht, Verzeichnis anlegen?", vbYesNo)
If a = vbNo Then
Exit Sub
Else
MkDir pfad
End If
End If
Sprungmarke:
Das ist der Code den ich geschrieben habe. Dabei soll überprüft werden ob ein Verzeichnis existiert und falls es dies nicht tut, soll es angelegt werden. Dabei suche ich ob der Ordner (name_vorname) existiert und vergleiche ihn mit dem Wert aus der Eingabemaske für den Kunden (name_vorname, aber zusammengesetzt aus 2 Zellen, eben Nachname und Vorname). Dies funktioniert leider nicht, also das zusammensetzen der beiden Strings "Mustermann" und "Max" aus 2 Zellen. Gebe ich den Namen im Code explizit vor durch namevorname = "Mustermann_Max" funktioniert die If-Schleife. Ansonsten leider nicht. Habe es mir auch schon mit Msgbox ausgeben lassen und jeweils das gleiche für str_suche und namevorname erhalten. Trotzdem funktioniert die Schleife nicht.
PS: Sorry für das unsystematische zusammenfassen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich Dir(pfad, vbDirectory) mit String
22.07.2015 15:31:41
Klexy
Das kann man am besten prüfen, wenn man eine Musterdatei hat.

AW: Vergleich Dir(pfad, vbDirectory) mit String
22.07.2015 15:43:25
UweD
Hallo
ich hab mir eine Musterdatei dazu gemacht und auch die Verzeichnispfade mal so angelegt.
Das makro funktioniert.
Fehler entsteht nur , wenn es das Verzeichnis der Variable 'projektname' noch nicht gibt.
S:\Praktikanten\" & projektname
Der MKDir Befehl will ja versuchen ganz hinten das Verzeichnis anzulegen, wenn aber weiter vorne schon was fehlt, dann klappt es nicht.
Gruß UweD

AW: Vergleich Dir(pfad, vbDirectory) mit String
22.07.2015 16:38:10
Joao
Also wenn der Ordner namevorname nicht existiert, dann legt er ihn mir problemlos an. Weil er ja logischerweise auch in die Else-Verzweigung geht. Existiert aber der Ordner, geht er trotzdem in die Else Anweisung rein. D.h. die Abfrage >>>If str_suche = namevorname Then

Anzeige
AW: Vergleich Dir(pfad, vbDirectory) mit String
22.07.2015 16:47:36
Joao
Also vielen Dank vorweg für die Mühe. Ich habe den Fehler gefunden.
Habe in der Maske in der Zelle "Vorname" den Vornamen eingegeben, aber leider danach ein Leerzeichen eingefügt (aus Versehen). Logischerweise sahen die Msgboxen der Strings gleich aus, nur eben einmal mit Leerzeichen. Habe damit jetzt wirklich ne Menge Zeit verbrannt :-D

AW: Vergleich Dir(pfad, vbDirectory) mit String
23.07.2015 10:22:38
UweD
Hallo nochmal
um das zu zukünftig zu verhindern noch diesen Tipp
vorname = Trim(maske.Range("E11").Value)
nachname = Trim(maske.Range("E12").Value)
projektname = Trim(maske.Range("E1").Value)

durch Trim werden eventuelle führende und folgende Leezeichen eriminiert. Innerhalb des Textes wird nichts verändert.
Gruß UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige