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

verschiedene Dateien offen, wie ist deren Name

verschiedene Dateien offen, wie ist deren Name
17.09.2006 20:33:18
Robert
Hallo,
aus einer Datei (Quelldatei) kopiere ich Daten in eine andere und speichere die neue Datei (Zieldatei).
Das ganze geschieht mittels Makros.
Da sich die Quelldatei immer wieder ändern kann (nicht aber die Zieldatei), möchte ich, wenn ich die Daten in der Zieldatei habe, zur Quelldatei wechseln. Mittels Makro wird aber immer der vollständige (aktuelle) Name der Quelldatei eingetragen.
Wie kann ich über eine Funktion den Namen der Quelldatei auslesen lassen, wenn ich in der Zieldaatei bin? Ich habe beide Dateien offen.
Ich möchte den Namen der Quelldatei möglichst bei Startz derselben auslesen lassen und als "globale Variable" speichern, so das ich auch von anderen Makros drauf zugreifen kann.
Hier das, was ich bisher habe....
Range("A4:B4").Select
Selection.Copy
Windows("A21_daten.xls").Activate ' Zieldatei
Range("A4:B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' der folgende Dateiname sollte durch eine Variable ersetzt werden; diese ist weiter oben deklariert
Windows("Stunden2007.xls").Activate ' Quelldatei

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

Betreff
Datum
Anwender
Anzeige
AW: verschiedene Dateien offen, wie ist deren Name
17.09.2006 21:00:40
Daniel
Hallo
im Prinzip müsstest du mit einer FOR EACH-Schleife alle geöffneten Excel-Dateien durchlaufen, und anhand eindeutiger Merkmale prüfen, ob die gerade aktuelle deine Quelldatei ist (z.B. Name des Sheets, Inhalte bestimmter Zellen), und wenn dies der Fall ist, den Namen (oder vielleicht sogar die ganze Datei) in eine Variable speichern.
als in etwa so:
Public NameQuelle as string
Public wbQuelle as workbook

Sub Dateinamen_bestimmen
dim wb as workbook
for each wb in application.workbooks
if wb.sheets(1).name = "Datenquelle" and wb.sheets(1).cells(1,1).value = "Datum" then
set wbQuelle = wb
NameQuelle = wb.name
exit for
end if
next
End Sub

so in etwa, nicht getested, keine Garantie auf rechtschreibfehler
Anzeige
AW: verschiedene Dateien offen, wie ist deren Name
18.09.2006 06:27:56
Robert
Hallo Daniel,
das scheint zu funktionieren.... und wie übergebe ich die Variable dann an die andere Datei.. sprich: wie erfolgt der Aufruf zum wechseln?
mit
Windows("Stunden2007.xls").Activate
kann das ja wohl nicht geschehen. Und wenn ich den Dateinamen lediglich wb.name passiert bei meinem PC nichts. leider.
AW: verschiedene Dateien offen, wie ist deren Name
18.09.2006 23:01:37
Daniel
Hallo
grundsätzlich sollte der gesamte Code (auch auf mehrere Makros verteilt) in einer Datei stehen, sinnigerweise in der Zieldatei.
Nach dem Ablauf von diesem Code stehen den anderen Makros, 2 Variablen zur verfügung:
die Stringvariabel "NameQuelle" mit dem Dateinamen der Quelldatei und die Objektvariable "wbQuelle" mit dem gesamten Workbookobjekt. Wenn die Variablen wie im Beispiel als Public außderhalb der Prozedur deklariert sind, stehen sie allen Makros zu verfügung und benötigen keine übergabe, du kannst Sie einfach verwenden. Zumindest so lange, wie der Code fehlerfrei gelaufen ist. Nach einem Fehlerabbruch sind die Variablen gelöscht und das Makro müsste nochmal laufen
das aktivieren der Quelldatei geht dann einfach mit:
wbQuelle.activate oder
workbooks("QuelleName").activate
Gruß, Daniel
Anzeige
AW: verschiedene Dateien offen, wie ist deren Name
19.09.2006 07:57:39
Robert
Danke für die Hinweise.
AW: verschiedene Dateien offen, wie ist deren Name
20.09.2006 08:59:26
Robert
Hallo Daniel,
sorry. habe es entsprechend versucht, nachdem ich vorher die Variablen umbenannt habe (die in dem von dir gezeigten).
Leider klappt das nicht so wie ich will.
Ich habe eine Variable imn Public deklariert und weise ihr da schon einen Dateinamen zu.
Dieser kann verschieden sein. Diese Variable will ich übergeben, so das ich in Excel mit 2 offenen Fenstern zw. den Mappen wechseln kann...
Beispiel:
Mappe 1 leifert die Daten und beinhaltet die Makros.
Über ein makro wird die Mappe2 erzeugt, Daten hineinkopiert und gespeichert.
Nun will ich zur Mappe1 wechseln.
ActiveWorkbook(mappe1).select klappt dabei nicht
Workbook(mappe1).activate leider auch nicht
Wie gesagt, ich will von Mappe2 zur Mappe1 wechseln, ohne den festen Dateinamen in den Makros zu haben. Dieser sollte ja von einer globalen Variablen bereits fest vergeben(bekannt sein.
Anzeige
AW: verschiedene Dateien offen, wie ist deren Name
20.09.2006 21:18:01
Daniel
Hallo
das Workbook, zu dem das Makro gehört, kannst du mit THISWORKBOOK ansprechen.
also Thisworkbook.activate
oder thisworkbook.sheets(1).cells.clear
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige