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

Sicher Name des ursprünglichen Workbooks merken

Sicher Name des ursprünglichen Workbooks merken
19.09.2008 09:23:13
kgurr
Hallo,
ich Excel-Spezialisten. Ich suche nach der besten und sichersten Methode in einer VBA-Programmierung mir den Namen eines Workbooks zu "merken". Es geht quasi um eine Frage zu einer generellen "Programmiertechnik"
Die Situation ist die folgende: über Makros aktiviere ich andere Dateien. Wenn ich auf das ursprüngliche Workbook zugreifen möchte, muss ich mindestens dessen Namen wissen. Daher muss ich es mir diesen irgendwie "merken". Doch wie geht das am einfachsten und sichersten? Dazu kommt, dass das Makro nicht immer aufgerufen wird, sondern quasi abhängig von bestimmten Situationen.
Was nicht funktioniert:
* den Namen in eine Zelle eines Tabellenblattes eintragen: da ich in einer anderen Datei bin, kann ich ja auf die Zelle nicht mehr zugreifen
* den Namen in den Dateieigenschaften zu hinterlegen: dito - auch hier kann ich aus einer anderen Datei nicht mehr darauf zugreifen
* den Namen in einer Konstanten zu hinterlegen: die Exceldatei hat immer wieder einen anderen Namen, es muss also variabel gelöst werden
* den VBA-Code anzupassen und dynamisch eine Konstante zu setzen: das VBA Projekt ist geschützt und der Code kann daher nicht dynamisch geändert werden
Was funktionieren würde, mir zu unsicher ist:
* Eintrag des Namens in die Registry: Das Excelprogramm läuft in vielen Dateien auf unterschiedlichen Konstellationen / Installationen und so ist mir ein Eintrag in die Regestry schlicht zu unsicher
* Den Namen des Workbooks in einer globalen Variablen zu hinterlegen, die beim Starten des Workbooks gesetzt wird. Dies dürfte wohl funktionieren, doch nach meiner Erfahrung macht dies ebenfalls Schwierigkeiten - besonders beim Entwickeln: plötzlich ist die Variable dann wieder leer ... :-(
Und nun meine Frage:
Gibt es sonst noch etwas, oder wie löst Ihr ein solches Problem?
Ich bin sehr gespannt auf Eure Antworten.
Grüsse,
kgurr

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sicher Name des ursprünglichen Workbooks merken
19.09.2008 10:05:00
Kawensmann
Hallo,
meinst du das Workbook mit dem Makro?
Dann: ThisWorkbook
Gruß
Kawensmann
AW: Sicher Name des ursprünglichen Workbooks merken
19.09.2008 10:10:00
Kawensmann
Sorry, habe gerade gesehen, dass der Vorschlag schon kam.
AW: Sicher Name des ursprünglichen Workbooks merken
19.09.2008 12:43:49
fcs
Hallo kgur,
wenn zuerst mit Makros in Datei1 andere Dateien geöffnet werden und später mit Makros in einer anderen Dateien auf die Datei1 zugegriffen werden soll, dann müssen die Makros in den anderen Dateien eine Routine enthalten, die in einer Schleife alle geöffneten Arbeitsmappen auf Inhalte untersucht, die einzigartig für Datei1 sind.
Das kann man zum Beispiel mit den Dokumenteigenschaften oder bestimmten Zellinhalten machen.
Nachfolgend ein Beispiel, dass eine selbstdefinierte Dokumenteigenschaft auf ihren Wert prüft, um eine Datei zu identifizieren. Name und Wert der Variablen werden an eine Function übergeben, die den Namen der Arbeitsmappe zurückgibt.
Gruß
Franz

Sub aatest()
Dim strUrsprungsdatei As String
strUrsprungsdatei = Originaldatei(strName:="OriginalName", varWert:="XXMasterdateiYY")
If strUrsprungsdatei  "Not Found" Then
Set wbOriginal = Workbooks(strUrsprungsdatei)
MsgBox "Ursprungsdatei mit Kennung ""XXMasterdateiYY"" wurde gefunden!"
Else
MsgBox "Ursprungsdatei mit Kennung ""XXMasterdateiYY"" wurde nicht gefunden!"
End If
End Sub
Function Originaldatei(strName As String, varWert As Variant) As String
'Gibt den aktuellen Namen der Datei zurück, wenn benutzerdefinierte Dok-Eigenschaft _
"strName" den Wert "varWert" hat
'strName = Variablen-Name einer benutzerdefinierten Dokumenteigenschaft
'varWer = Wert der Dokumenteigenschaft
Dim wb As Workbook, obj As Object
Originaldatei = "Not Found" 'Fehlerwert
For Each wb In Workbooks
For Each obj In wb.CustomDocumentProperties
If obj.Name = strName And obj.Value = varWert Then
Originaldatei = wb.Name
Exit For
End If
Next
Next
End Function


Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige