Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatische verknüpfungen zu einer anderen Mappe

automatische verknüpfungen zu einer anderen Mappe
10.08.2007 09:04:34
Marcel
Liebe Excel-aner!
Ich möchte gerne eine "automatische verknüpfungen zu einer anderen arbeitsmappe" abschaffen.
Wenn ihr mir helfen könnt, wäre das toll!
Ausgangssituation:
Excel 2000.
Ich habe eine Tabelle mit mehreren Tabellenblättern und VBA-Code. Diese nennen wir Haupttabelle.
In Tabellenblatt(1) werden Summen von Tabellenblatt(2) und Tabellenblatt(3) mit einer Formel verlinkt. (zBsp ='[tabellenblatt2]'!F29 ). Von diesen Formeln gibt es einige, eine Systematik liegt hier nicht zugrunde, da diese Formeln individuell angelegt werden bei der Bearbeitung.
Im weiteren Schritt wird per VBA eine neue Mappe angelegt und es werden die 3 Tabellenblätter hineinkopiert (per Cells.Select, Selection.Copy, ActiveSheet.Paste). Danach wird die neu erstellte Mappe (nennen wir sie Nutzertabelle) gespeichert, die Haupttabelle wird nicht geändert.
Wenn ich die Daten wieder bearbeiten will, lese ich die Nutzertabelle in die Haupttabelle ein. (kopieren wie oben beschrieben). Jetzt kommt eine Meldung, ob automatische Verknüpfungen aktualisiert werden sollen. Diese Meldung hätte ich gerne per VBA unterdrückt, in den Einstellungen EXTRAS - OPTIONEN von Excel möchte ich nichts ausschalten, da die Haupttabelle auf mehreren Rechnern läuft und ich nicht alle ausschalten möchte. Damit ist das Einlesen abgeschlossen.
Interessant wird es, wenn der Dateiname der Haupttabelle geändert wird. Dann findet die automatische Aktualisierung die Datei nicht wieder. Um die Fehlermeldung zu unterdrücken, habe ich bereits
Application.DisplayAlerts = False / True eingesetzt. Die Meldung zur automatischen Verknüpfung bleibt auch hier, nur der Dialog "datei nicht gefunden" wird unterdrückt.
Es gibt jetzt zwei Ansätze, wobei ich den zweiten bevorzugen würde:
1) Meldung zur automatischen Verknüpfung unterdrücken - fertig - freuen. Problem: die Summen werden nach dem Einlesen bei einer Änderung in tabellenblatt(2 od. 3) nicht in tabellenblatt(1) aktualisiert, weil excel ja in einer ganz anderen datei sucht (die es nach umbenennen ja auch gar nicht gibt)
2) Ich schaffe es, bei der Kopieraktion von der Haupttabelle in die Nutzertabelle den Dateinamen in den Summen zu unterdrücken, vielleicht kann man auch so eine '$'-Funktion für tabellenblätter einsetzen (sowohl in Haupttabelle als auch in Nebentabelle sind die Tabellennamen gleich).
Ich hoffe, ich habe es einigermaßen verständlich ausgedrückt.
Vielen Dank im Voraus. =)
Liebe Grüße
Marcel.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatische verknüpfungen zu einer anderen Ma
10.08.2007 09:53:57
Ramses
Hallo
Schau dir in der VBA-Hilfe mal die Methode "Workbooks.Open" an, und dort im speziellen die Option "UpdateLinks"
Der Rest mit dem Umbenennen ist unter E2000 extrem aufwändig.
1. Du musst einmal rausfinden wie der Pfad und der Dateiname der Originaldatei war.
Eventuell aus einer ZellFormel extrahieren wo du sicher weisst, dass eine Verknüpfung drin ist
2. Den Benutzer fragen wie die neue Datei heisst
X = Application.GetOpenFilename
3. Über "Bearbeiten - Suchen und Ersetzen" Option "In Formeln"
Den alten Pfad und Dateiname mit dem neuen aus "X" ersetzen
Gruss Rainer

Anzeige
AW: automatische verknüpfungen zu einer anderen Ma
10.08.2007 10:15:13
Marcel
Hallo Rainer,
danke für deine schnelle antwort. Die hilfe werde ich nochmal durchlesen.
Zur Umbenennerei:
Pfad und Dateiname der Orginaldatei kann ich schon beim Erstellen der Nutzertabelle auslesen und irgendwohin in die nutzertabelle schreiben. ich erstelle mir ja Variablen mit den Dateinamen der beiden Dateien, um die Kopieraktionen durchführen zu können. Beim Einlesen ruft der Nutzer im ÖffnenDialog seine Datei auf, die er in die Haupttabelle einlesen will. Dann wird die Bildschirmaktualisierung ausgeschalten, die Kopieraktion wird ausgeführt (dann habe ich auch den Namen der Nutzerdatei), danach wieder eingeschalten.
( [Variable] = ActiveWorkbook.Name )
Schöner Ansatz, dass ich Ihn automatisch beim Einlesen nach dem Kopieren nach dem Pfad suchen lasse und den dann einfach rauslösche, damit refenziert er wieder im aktuellen Worksheet.
Ich denke mir aber, dass das schon sehr aufwendig ist. Ich muss ja alle Tabellen durchsuchen lassen u.v.a. so ändern, dass es auch klappt. Evtl. mit For - next. ich probiere mal, ob ich da weiterkomme und poste, wenn das früchte trägt.
sollte jemandem ein anderer ansatz einfallen, bitte schreiben =)
danke erstmal,
marcel.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige