Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabelle aus anderer Datei per Makro aufrufen

Tabelle aus anderer Datei per Makro aufrufen
27.12.2004 15:55:06
Fritz
Hallo Excelfreunde,
ich bitte euch um Hilfe in folgender Angelegenheit:
Beim Öffnen einer Exceldatei wird - falls im gleichen Ordner vorhanden - immer eine diese Datei ergänzende Datei (gleicher Dateiname mit dem Zusatz "-E" geöffnet. Ich möchte aus der (Haupt-)Datei per Makro in die Tabelle "Daten2" - die sich in der (Ergänzungs-)Datei "-E" befindet - wechseln. Falls diese Datei "nicht geöffnet ist, sollte ein entsprechender Hinweis gegeben werden.
Danke für eure Hilfen.
Gruß
Fritz

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle aus anderer Datei per Makro aufrufen
27.12.2004 16:14:59
Josef
Hallo Fritz!
Sollte so klappen:

Sub OeffneZusatz()
Dim str As String
On Error GoTo ERRORHANDLER
str = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".") - 1) & "-E.xls"
Workbooks(str).Sheets("Daten2").Activate
Exit Sub
ERRORHANDLER:
MsgBox "Die Datei """ & str & """ ist nicht geöffnet!"
End Sub

Gruß Sepp
AW: Tabelle aus anderer Datei per Makro aufrufen
Fritz
Hallo Sepp,
klappt einwandfrei!
Zum wiederholten Mal herzlichen Dank!
Schönen Gruß
Fritz
AW: Tabelle aus anderer Datei per Makro aufrufen
ChrisL
Hi Fritz
Etwas spät aber trotzdem...

Sub switch()
Dim strWB1Name As String, strWB2Name As String
Dim varMSGAntwort As Variant
strWB1Name = ThisWorkbook.Path
If strWB1Name = "" Then
varMSGAntwort = MsgBox("Datei wurde noch nicht gespeichert. Wollen Sie Datei jetzt speichern?", vbYesNo + vbQuestion, "Datei speichern?")
If varMSGAntwort = vbYes Then
Application.Dialogs(xlDialogSaveAs).Show
Else
Exit Sub
End If
End If
strWB2Name = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & "-E.xls"
On Error Resume Next
Workbooks(strWB2Name).Activate
Workbooks(strWB2Name).Worksheets("Tabelle2").Select
If Err.Number = 9 Then
If Dir(ThisWorkbook.Path & "\" & strWB2Name) = "" Then
MsgBox "Datei " & strWB2Name & " existiert nicht.", vbExclamation
Else
Workbooks.Open ThisWorkbook.Path & "\" & strWB2Name
Workbooks(strWB2Name).Worksheets("Tabelle2").Select
End If
End If
End Sub

Gruss
Chris
Anzeige
AW: Tabelle aus anderer Datei per Makro aufrufen
Fritz
Hallo Chris,
vielen Dank! Ich empfinde niemals eine Hilfe als (zu) spät und ich bin wirklich jedem dankbar, der sich die Mühe macht, sich mit den Problemen eines Anfängers zu befassen.
Schönen Tag noch
Gruß
Fritz
Danke für die Rückmeldung o.T.
ChrisL
.
doch noch einen Wunsch
Fritz
Hallo ihr Helfer,
ich habs leider (wieder nicht) allein hingekriegt.
Hab noch einen Wunsch und hoffe erneut auf euch:
Ich will aus der Ergänzungstabelle ("-E") per Makro in die (Haupt-)Datei zurückwechseln und dort in die Tabelle "Menü".
Besten Dank bereits jetzt für eure Hilfe!
Gruß
Fritz
AW: doch noch einen Wunsch
27.12.2004 17:12:20
Josef
Hallo Fritz!
Zurück sollte es so gehen!

Sub zurueck()
Dim str As String
On Error GoTo ERRORHANDLER
str = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".") - 3) & ".xls"
Workbooks(str).Sheets("Menü").Activate
Exit Sub
ERRORHANDLER:
MsgBox "Die Datei """ & str & """ ist nicht geöffnet!"
End Sub

Gruß Sepp
Anzeige
Bestens! Vielen Dank Sepp! o.T.
Fritz
AW: doch noch einen Wunsch
@Sepp
Hallo Sepp,
hast mir im Zusammenhang mit diesen beiden Dateien (Hauptdatei und Ergänzungsdatei) schon so unendlich viel geholfen und immer war die angebotene Lösung top.
Ich hab (schon wieder) ein Problem, das ich gerne gelöst haben wollte und ich bin sicher, dass Du mir (relativ schnell) eine Lösung anbieten könntest. Andererseits ist es auch nicht so dringend, Du könntest die Sache auch noch in den nächsten Tagen angehen.
Darf ich mich noch einmal an Dich wenden?
Gruß
Fritz
jederzeit Fritz! o.T.
28.12.2004 00:18:05
Josef
Gruß Sepp
@Sepp: jederzeit Fritz! o.T.
Fritz
Hallo Sepp,
danke mich sehr über Deine Bereitschaft, mir in dieser Angelegenheit erneut helfen zu wollen. Ich hoffe nicht, das sich nach der nachfolgend beschriebenen Aufgabenbeschreibung daran was ändert (hätte aber natürlich dafür Verständnis)
Zur Ausgangssituation:
Aufgrund eines von Dir erstellten Makros ist es möglich, dass wenn die (Haupt-)Datei "Planer.xls" geöffnet wird, - eine diese Datei ergänzende Datei "Planer-E.xls" ebenfalls geöffnet wird (falls diese im gleichen Ordner vorhanden ist). Diese Ergänzungsdatei ist mit der Hauptdatei verknüpft, d.h. Formeln in Planer-E.xls beziehen sich auf die (Haupt-)Datei Planer.xls.
Folgendes wollte ich nun noch(wenn möglich) realisieren können:
Ich möchte den Namen der Hauptdatei in dieser Datei in der Tabelle "Daten" in der Zelle E1 als Text eingetragen. Weiterhin habe ich in der gleichen Tabelle in C1 einen weiteren Eintrag (derzeit 04/05V). Der Dateiname soll nun bei der Speicherung der Datei aus diesen beiden Einträgen kombiniert werden (am vorliegenden Fall zum Dateinamen "Planer-04/05.xls". Die Änderung des Dateinamens sollte aber nur erfolgen wenn gleichzeitig die Ergänzungsdatei ebenfalls geöffnet ist (im vorliegenden Fall "Planer-E.xls", die dann auch entsprechend (im vorliegenden Fall in "Planer-04/05V.xls") umbenannt werden muss. Die Hauptdatei muss (meines Erachtens) jedoch immer zuerst gespeichert werden.
Bei Rückfragen melde Dich bitte.
Gruß
Fritz
Anzeige
Nachgefragt
28.12.2004 12:37:27
Josef
Hallo Fritz!
Nur um alle Klarheiten auszuräumen;-))
Hauptdatei (zB. Planer.xls)wird geöffnet und öffnet ihrerseits die Datei (Planer-E.xls).
In Hauptdatei steht in "E1" "Daten" und in "C1" wird zB. "04/05V" eingetragen.
Beim Speicher der Hauptdatei wird nun die Datei "Planern-E.xls" als "Planer-04/05V.xls"
gespeichert.
Ist das soweit richtig?
Was passiert mit "Planer-E.xls"?
Ich vermute diese bleibt quasi als Back-Up erhalten.
Gruß Sepp
AW: Nachgefragt
Fritz
Hallo Sepp,
manchmal hat man Vorstelungen, die man vielleicht selbst nicht richtig einschätzen kann, zumindest nicht richtig darlegen. Nachfolgend versuche ich zunächst, konkret auf Deine Fragen einzugen:
Hauptdatei (zB. Planer.xls)wird geöffnet und öffnet ihrerseits die Datei (Planer-E.xls).
(so korrekt)
In Hauptdatei steht in "E1" "Daten" und in "C1" wird zB. "04/05V" eingetragen.
muss korrigiert wie folgt korrigiert werden:
In der Hauptdatei "Planer.xls" steht in der Tabelle "Daten" in der Zelle E1 der Dateiname (bislang als Texteintrag, wird also nicht über ein Makro ausgelesen), somit im vorliegenden Fall "Planer". In der gleichen Tabelle ("Daten") steht in der Zelle C1 ebenfalls per Eintrag derzeit 04/05V.
Beim Speichern der Hauptdatei (soll wenn sich der Eintrag in C1 und/oder E1 ändert und die "Ergänzungsdatei" geöffnet ist, der jeweilige Dateiname geändert werden. Ansonsten die Speicherung unter den bisherigen Namen.
Wird z.B. in der Tabelle "Daten" der Eintrag in C1 in 05/06V geändert, dann sollte (beim Speichern der Datei) - falls die Ergänzungsdatei geöffnet ist, zunächst die Speicherung der Hauptdatei unter "Planer-05/06.xls" erfolgen und gleich danach sollte die Ergänzungsdatei unter dem Namen "Planer-05/06-E.xls" gespeichert werden.
Die bisherigen Dateien würden dann unter ihrer alten Bezeichnung bestehen bleiben.
Ist das so machbar?
Danke für Deine großartige Unterstützung!
Gruß
Fritz
Anzeige
AW: Nachgefragt
28.12.2004 14:06:25
Josef
Hallo Fritz!
Erste Einschränkung! "04/05V" verursacht Fehler wegen dem slash (/)!
Der slash ist im Dateinamen nicht zulässig!
Ich hab es jetz mal mit "0405V" gemacht, damit kannst du sicher leben;-)
Beim Öffnen von "Planer.xls" wird immer die Datei mit dem Zuatz in "C1"(Tabelle "Daten")
geöffnet. ZB.: "Planer.xls" mit 0405V als Zusatz, öffnet "Planer-0405-E.xls"
Beim speichern von "Planer.xls" wird die Hilfsdatei unter dem ggf. neuen Namen
gespeichert (Zusatz ist immer die ersten vier Zeichen in "C1").
Wenn beim Speichern ein fehler auftritt, wird "Planer.xls" trotzdem gespeichert!
!Achtung! Die Variable für den Dateinamen der Hilfsdatei wird im Modul gespeichert!
Wenn du im Modul änderungen vornimmst, kann es passieren das der Inhalt der
Variablen (str) verloren geht, dann gibts beim Speichern Probleme!
Mann könnte, um das zu verhindern, den Wert der Variablen in einer Zelle
der Tabelle "Daten" zwischenspeichern.
Probier's mal aus und berichte über deine Erfahrungen.

'In das Modul "DieseArbeitsmappe" der Datei "Planer.xls"
Option Explicit
Dim str As String
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim newStr
On Error GoTo ERRORHANDLER
newStr = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".") - 1) & "-"
newStr = ThisWorkbook.Path & "\" & newStr & Left(Sheets("Daten").[C1], 4) & "-E.xls"
str = Right(str, InStr(1, StrReverse(str), "\") - 1)
Workbooks(str).SaveAs newStr
Exit Sub
ERRORHANDLER:
MsgBox "Beim speichern ist Fehler ist aufgetreten!"
End Sub
Private Sub Workbook_Open()
str = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".") - 1) & "-"
str = ThisWorkbook.Path & "\" & str & Left(Sheets("Daten").[C1], 4) & "-E.xls"
On Error GoTo ERRORHANDLER
Workbooks.Open str
Exit Sub
ERRORHANDLER:
MsgBox "Die Datei """ & str & """ wurde nicht gefunden!"
End Sub

Gruß Sepp
Anzeige
AW: Nachgefragt
Fritz
Hallo Sepp,
nach intensivem Testen, hab ich mich - schweren Herzens - zu dieser Rückmeldung entschlossen. Warum schweren Herzens?
Ich seh die immense Arbeit die Dur mir gegenüber erbringst aber auch meine Unzulänglichkeit, klar auszudrücken, was ich eigentlich will.
Andererseits ist gerade dehalb eine Rückmeldung oberste Pflicht. Bitte nimm aber nur dann noch Änderungen vor, wenn Du es aufgrund dieser Nachricht noch wirklich verantworten kannst.
Im ursprünglichen Zustand hießen meine beiden Dateien "Planer.xls" únd "Planer-E.xls". Dieser Zusatz -E steht für ergänzende Datei und diese Datei wird automatisch geöffnet, wenn die (Haupt-)Datei "Planer.xls" geöffnet wird.
Mein Ziel ist es, den Dateinamen der Hauptdatei künftig so zu gestalten, dass er sich aus zwei Einträgen in der Tabelle "Daten" dieser Datei ergibt. Diese Einträge befinden sich in Zelle C1 (aktuell: 0405V) und E1(Planer). Der Dateiname für diese Datei sollte künftig immer aus diesen beiden Eintragungen, ergänzt durch den Bindestrich, gebildet werden. Deshalb habe ich jetzt schon die Datei so umbenannt, dass sie diesen Anforderungen gerecht wird. Der aktuelle Dateiname lautet also "Planer-0405"(.xls). Entsprechend habe ich die aktuelle Ergänzungsdatei in "Planer-0405-E"(.xls) umbenannt.
Was sollte (ggf) geändert werden:
Wenn nun beide Dateien geöffnet sind, sollten immer auch beide Dateien gemeinsam gespeichert werden, die Hauptdatei zuerst und die Ergänzungsdatei unmittelbar danach.
Ich habe mir vorgestellt, dass die Dateinamen beim Speichern eben dann verändert werden, wenn in den Zellen C1 und E1 in der Tabelle "Daten" der Hauptdatei Änderungen vorgenommen wurden. Der jeweils neue Dateiname sollte sich entsprechend dieser geänderten Eintragung ergeben (wie beschrieben). Wenn ich also während der Arbeit mit der Hauptdatei eine Änderung in einer der Zellen C1 und E1 (in der Tabelle "Daten")vornehme, sollte dies beim Speichervorgang registriert und die Datei entsprechend umbenannt werden. Die Ergänzungsdatei entsprechend auch, damit sie beim Öffnen der Hauptdatei ebenfalls wieder geöffnet wird. Wie wenn ich während einer Sitzung unter "Speichern unter" quasi "von Hand" einen neuen Dateinamen vergebe, nur dass dies automatisch erledigt wird, wenn die Zelleintragung (in C1 oder E1) dazu Anlass geben (bei Änderung) und mit dem Zusatz, dass auch die Ergänzungsdatei eine entsprechende Namensänderung erfährt.
So Sepp, bitte entscheide nun, ob Du Dir das noch antun willst.
Hast mir schon so viel geholfen, ein Nein wäre absolut nicht tragisch für mich.
Nochmals vielen Dank und beste Grüße
Fritz
P.S. Füg Dir den derzeit in "DieseArbeitsmappe" befindlichen Code (von Dir erstellt) bei.

Private Sub Workbook_Open()
Dim strFile As String
strFile = Left(Me.FullName, Len(Me.FullName) - 4) & "-E.xls"
On Error Resume Next
Application.ScreenUpdating = False
Workbooks.Open strFile
Windows(Me.Name).Activate
Application.ScreenUpdating = True
On Error GoTo 0
End Sub

Anzeige
AW: Nachgefragt
28.12.2004 17:49:58
Josef
Hallo Fritz!
Rückfragen sind doch kein Problem!
So sollte es funktionieren!

Option Explicit
Dim strOld As String
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strFile
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
strFile = ThisWorkbook.Path & "\" & Sheets("Daten").[E1] & "-" & Left(Sheets("Daten").[C1], 4) & ".xls"
On Error GoTo ERRORHANDLER
ThisWorkbook.SaveAs strFile
strFile = ThisWorkbook.Path & "\" & Sheets("Daten").[E1] & "-" & Left(Sheets("Daten").[C1], 4) & "-E.xls"
Workbooks(strOld).SaveAs strFile
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
Exit Sub
ERRORHANDLER:
MsgBox "Beim speichern ist Fehler ist aufgetreten!"
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Private Sub Workbook_Open()
Dim strFile As String
strFile = ThisWorkbook.Path & "\" & Sheets("Daten").[E1] & "-" & Left(Sheets("Daten").[C1], 4) & "-E.xls"
On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
Workbooks.Open strFile
strOld = Right(strFile, InStr(1, StrReverse(strFile), "\") - 1)
Windows(ThisWorkbook.Name).Activate
Application.ScreenUpdating = True
Exit Sub
ERRORHANDLER:
MsgBox "Die Datei """ & strFile & """ wurde nicht gefunden!"
Application.ScreenUpdating = True
End Sub

Gruß Sepp
Anzeige
Schon wieder ich
Fritz
Hallo Sepp,
funktioniert leider immer noch nicht. Hat offensichtlich beim Speichervorgang Probleme. Muß wohl mit dem Namen der Ergänzungsdatei zusammenhängen (teilweise findet er die nicht unter dem Namen, unter dem sie gesucht wird usw.) Häufig Abbruch mit Wiederherstellungsdatei. Bin aufgrund des vielen Testens nicht mehr in der Lage, das sachlich so zu beschreiben, wie es erforderlich wäre, damit du damit was anfangen kannst. Ich bewundere Dich eh um Deine Engelsgeduld, aber auch diese möchte ich nicht überstrapazieren. Werde in den nächsten Tagen noch einmal testen und melde mich dann (evtl. erst 2005) noch einmal. Aber ich muss jetzt erst einmal Abstand gewinnen.
Vielen Dank für alles
Gruß
Fritz
Anzeige
@Sepp
Fritz
Hallo Sepp,
mit etwas Abstand habe ich soeben (nocheinmal) das letzte Makro ausführlich getestet.
Unter WindowsXP und EXCEL XP ergeben sich Speicherprobleme immer dann, wenn eine Änderung in der Hauptdatei "Planer-0405" in der Tabelle "Daten" in Zelle C1 oder E1 zu einer Änderung des Dateinamens führt. Es erscheint die Meldung: "Microsoft Excel for Windows hat ein Problem festgestellt und muss beendet werden". Dabei wird - unter EXCEL XP - eine Wiederherstellungsdatei angelegt. Die Namensänderung wird trotz Abbruch aber sowohl bei der Hauptdatei als auch bei der Ergänzungsdatei korrekt durchgeführt so dass ich - auch wenn ich die Wiederherstellungsdateien lösche - diese Dateien unter ihrem neuen Namen korrekt aufrufen kann.
Ich habe diese Tests auch auf dem PC meines Sohnes unter EXCEL 2000 durchgeführt. Dabei grundsätzlich die gleiche Situation (vorher beschriebene Meldung bezüglich eines festgestellten Problems und Abbruch), mit dem Unterschied, dass EXCEL 2000 natürlich nicht versucht eine Wiederherstellungsdatei anzulegen (was aufgrund der unabhängig davon korrekt durchgeführten Speicherung gegenüber XP letztlich als Vorteil zu werten ist. Denn: Trotz Abbruchs wird auch hier die Speicherung unter dem neuen Namen korrekt durchgeführt. Fazit: Unter EXCEL 2000 kann man das Makro letztlich durchaus verwenden.
Nachdem Du so viel Mühe und Arbeit investiert hast, wollte ich Dir diese Erkenntnisse nicht vorenthalten. Wenn aufgrund dieses "Testberichts" nicht ersichtlich wird, wo die Ursachen sind, halte ich es für sinnvoll, (unter EXCEL XP) mit der vorhandenen (bisherigen) "Version" vorlieb zu nehmen.
Ich würde mich freuen,
1. wenn über eine kurze Nachricht von Dir
2. wenn ich künftig wieder einmal von Deinen Fähigkeiten und Deiner großen Hilfsbereitschaft profitieren kann.
Vielen Dank für Deine - besonders in der jüngeren Vergangenheit - für mich geleistete Arbeit. Ich wünsche Dir (sollte dies meine letzte Mitteilung in diesem Jahr sein) bereits an dieser Stelle ein erfolgreiches und gesundes Neues Jahr.
Gruß
Fritz
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige