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

Ein paar Fragen zu Workbook_Open

Ein paar Fragen zu Workbook_Open
Marc
Hallo nochmal,
ich möchte gerne beim Öffnen einer Tabelle den aktuellen Pfad abgleichen und habe es mit folgendem Code probiert - leider klappt es damit nicht und ich erhalte eine Fehlermeldung.
Eigentlich soll nur überprüft werden, ob der aktuelle Dateipfad mit einem der hinterlegten übereinstimmt.
Fall ja, soll die Tabelle normal geöffnet werden, fall nein, soll das Sub "UnauthorizedActions_Msg" aufgerufen werden.
Mein Problem ist, dass sich der Dateiname ändern darf und nur der restliche Pfad mit den Vorgaben übereinstimmen muss, wodurch ich eine Konstante wohl nicht verwenden kann.
(Ziel ist es, dass man die Datei zwar umbenennen kann, jedoch nur in bestimmten Ordnern speichern kann.)
Private Sub Workbook_Open()
Dim Valid_Filename1 As String
Valid_Filename1 = "C:\Users\Notebook\Desktop\DATEINAME.xlsm"
Dim Valid_Filename2 As String
Valid Filename2 = "C:\andererPfad\DATEINAME.xlsm"
If Me.FullName  Valid_Filename1 And Me.FullName  Valid_Filename2 Then
Call UnauthorizedActions_Msg
Me.Close False
End If
End Sub

Kann mir jemand damit weiterhelfen ?
Bin Euch für jede Hilfe dankbar !
VG,
Marc

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
wie wärs mit .Path statt .FullName?
04.06.2012 17:20:46
Sheldon
Hi Marc,
wenn du nur den Pfad abgleichen willst, dann frag doch auch danach. In den Variablen dann ebenfalls nur Pfad hinterlegen!
Gruß
Sheldon
AW: wie wärs mit .Path statt .FullName?
04.06.2012 18:14:42
Marc
Hallo Sheldon,
vielen Dank für Deine Antwort !
Ich bin mit VBA noch ganz am Anfang, deswegen brauche ich leider etwas länger. :-(
Ich habe den Codeteil in Workbook_Open jetzt wie folgt ersetzt, es funktioniert aber noch nicht - habe ich etwas vergessen ?
Im Beispiel hier wäre die Datei auf dem Desktop abgelegt, d.h. man sollte sie dort umbenennen jedoch nicht in andere Ordner speichern bzw. von dort öffnen können.
Dim Valid_Filepath1 As String
Valid_Filepath1 = "C:\Users\Notebook\Desktop\"
Dim Valid_Filepath2 As String
Valid Filepath2 = "C:\andererPfad\"
If Me.Path Valid_Filepath1 And Me.Path Valid_Filepath2 Then
Call UnauthorizedActions_Msg
Me.Close False
End If
VG und vielen Dank nochmal,
Marc
End If
Anzeige
lass den letzten "\" weg
04.06.2012 18:24:19
Sheldon
Hi Marc,
aber dafür hast du ja uns, ist also kein Problem. Es gibt eh nur blöde Antworten, aber keine blöden Fragen. Also, Me.Path ergibt z. B. "C:\Users\Desktop" aber nicht "C:\Users\Desktop\", daher funktioniert das nicht.
Ein Tipp: Du kannst die Rückgabewerte einfach testen, indem du einfach mal Msgbox Me.Path in den Code eingibst genau an der Stelle, wo du mit dem Rückgabewert von Me.Path auch arbeiten würdest. Einfach als eigene Befehlszeile. Dann siehst du genau, was an der entsprechenden Stelle mit deinen Variablen verglichen wird. Den Befehl nimmst du natürlich wieder raus, wenn du zufrieden bist, sonst kommt ja bei jeden Aufruf die Messagebox wieder zum Vorschein!
Gruß
Sheldon
Anzeige
AW: lass den letzten "\" weg
04.06.2012 19:08:15
Marc
Hallo Sheldon,
vielen Dank nochmal !
Es klappt leider trotzdem nicht und auch die MessageBox verursacht eine Fehlermeldung - es scheint jedes Mal an "Me.Path" zu liegen ?
Mit folgendem Code funktioniert alles einwandfrei - hier habe ich jedoch das Problem, dass der komplette Dateiname enthalten sein muss.
Gibt es vielleicht noch einen anderen Weg oder eine Kombination aus beidem ?
Const VALID_FILENAME1 As String = "C:\Users\Notebook\Desktop\DATEINAME.xlsm"
Const VALID_FILENAME2 As String = "C:\andererPfad\DATEINAME.xlsm"
If Me.FullName VALID_FILENAME1 And Me.FullName VALID_FILENAME2 Then
Call UnauthorizedActions_Msg
Me.Close False
End If
VG,
Marc
Anzeige
AW: lass den letzten "\" weg
04.06.2012 20:40:19
Sheldon
Hmm...
ich habs im Workbook_Open getestet, bei mir klappte das. Aber teste mal, ob Thisworkbook.Path anstelle von Me.Path funzt. Thisworkbook sollte überall klappen, Me nur im Arbeitsblatt-Code, soweit ich das blicke.
Gruß
Sheldon
AW: lass den letzten "\" weg
05.06.2012 09:10:19
Marc
Hallo Sheldon,
vielen vielen Dank - das war die Lösung ! :-)
Damit klappt es einwandfrei !
VG und danke nochmal für Deine Geduld - einen schönen Tag noch,
Marc

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige