budda
Goto Top

Excel Makro was beim öffnen 2 weitere Excel Dateien öffnet

Moin,

folgende Problematik:
ich habe eine Exceldatei in der ich Bezüge auf Tabellen in 2 anderen Excel Dateien habe.
Nun tritt das Problem auf das, wenn die beiden anderen Dateien nicht geöffnet sind, in der tabelle nur #WERT! steht.
Öffne ich anschliessend die anderen beiden Dateien werden die Werte dargestellt.

Jetzt wäre ein Makro ganz toll was in der Urpsrungsdatei ist was beim öffnen dieser die anderen beiden Dateien gleich mitöffnet.
Ist sowas möglich? Wenn ja wie? Ich hab leider noch nie ein Makro in Excel erstellt face-sad

Gruß
Budda

Content-Key: 45501

Url: https://administrator.de/contentid/45501

Printed on: April 25, 2024 at 11:04 o'clock

Mitglied: 27234
27234 Nov 28, 2006 at 10:21:09 (UTC)
Goto Top
Hallo,

am einfachsten ist die Variante, ein Makro aufzuzeichnen, Dazu "Extras", "Makro", "Makro aufzeichnen", einen sinnigen Namen vergeben und loslegen Aktionen (wie "Datei öffnen", usw.) ausführen. Am Ende die Aufzeichnung beenden. Jetzt sind diese Aktionen gespeichert und Du kannst sie jederzeit wieder genauso ausführen.

Gruß - Bolle97
Member: leknilk0815
leknilk0815 Nov 28, 2006 at 10:22:16 (UTC)
Goto Top
Hi,
das ist ganz einfach mit dem Makrorekorder zu erledigen.
Öffne Deine Excel- Datei, gehe unter "Extras - Makro - Aufzeichnen".
Dann gibst Du dem Makro einen Namen.
Bevor Du dann die Aufzeichnung staartest, solltest Du wissen, was alles passieren soll, jeder BEFEHL BZW: Mausklick wird ab da gespeichert.
Im Prinzip brauchst Du nur bei laufender Aufzeichnung die anderen Excels öffnen und anschließend im Makro- Menü die Aufzeichnung beenden.
Date speichern, wenn Du dann das Makro über das Menü ausführst, macht es genau die selben Schritte, die Du während der Aufzeichnung auch gemacht hast.

Viel Spass, Gruß - Toni

Edit: zu spät...

EDIT2: noch was vergessen...
die Dateien musst Du natürlich über das Excel- Menü "Datei - öffnen" aufrufen, wenn Du die einfach nur im Explorer anklickst, nimmt das der Makro- Rekorder NICHT mit!
Mitglied: 8644
8644 Nov 28, 2006 at 10:31:55 (UTC)
Goto Top
Hi,

obwohl stimmt, was meine Vorschreiber dir raten, würde ich das Problem doch anders angehen. Es muss ja einen Grund geben, weshalb Bezüge nicht aktualisiert werden. Guck mal unter Extras -> Optionen -> Reiter Berechnen, ob der Haken bei Externe Verknüpfungswerte speichern gesetzt ist.

Psycho
Member: Budda
Budda Nov 28, 2006 at 10:35:43 (UTC)
Goto Top
Hi,

schonmal danke für die antworten. Also der Haken ist in den Optionen gesetzt.
Wenn ich das Makro so aufzeichne wird das dann beim öffnen der Datei auch automatisch ausgeführt?
Mitglied: 8644
8644 Nov 28, 2006 at 10:37:34 (UTC)
Goto Top
Zum Makro:

Das Ding muss auto_open heissen!

Sub auto_open()
 Workbooks.Open Filename:="erste Datei mit Pfad"  
 Workbooks.Open Filename:="zweite Datei mit Pfad"  
End Sub

Psycho
Mitglied: 27234
27234 Nov 28, 2006 at 10:38:52 (UTC)
Goto Top
Hallo,

nein, natürlich nicht, aber öffne doch gleich alle 3 oder mehr Dateien mit Deinem Makro.

Gruß - Bolle97
Member: Budda
Budda Nov 28, 2006 at 11:10:19 (UTC)
Goto Top
Ok, nächste Problem.

Makro wird beim öffnen ausgeführt und öffnet die Dateien. Soweit so gut.
Nun muss ich diese Dateien allerdings per Mail immer wegschicken so das Sie beim Gegenüber dann in einer anderen verzeichnisstruktur liegen. Allerdings immer zusammen in einem Ordner.

Habe daraufhin den Befehl zum Verzechniswechsel aus dem makro genommen und die Pfadangaben. Sprich aus:
Workbooks.Open Filename:= _
"c:\test\1\Dateiname.xls"

wurde:
Workbooks.Open Filename:= _
"Dateiname.xls"

So kann er die Datei aber leider nicht finden. Kann ich vorher irgendwie das Verzechnis auslesen aus dem die Ursprungsdatei geöffnet wurde und das dann da einsetzen?
Mitglied: 8644
8644 Nov 28, 2006 at 11:22:03 (UTC)
Goto Top
Hi,

dann sollten wir vorher den Pfad der aktuellen Datei auslesen:

Sub auto_open()
 Dim s_path As String
 s_path = ActiveWorkbook.path
 Workbooks.Open Filename:= s_path & "Dateiname1.xls"  
 Workbooks.Open Filename:= s_path & "Dateiname2.xls"  
End Sub

Psycho
Member: Budda
Budda Nov 28, 2006 at 11:31:02 (UTC)
Goto Top
Wunderbar, das funktioniert wenn man noch nen / vor Dateiname einbaut ;)
Gibt es jetzt noch ne Möglichkeit das er nach dem Laden wieder die Ursprungsdatei Maximiert?
Jetzt hat er natürlich die zuletzt geöffnete Datei Maximiert.

Das wäre dann super :D
Mitglied: 8644
8644 Nov 28, 2006 at 11:34:12 (UTC)
Goto Top
Jep,

erst die aktuelle Mappe speichern:

 Dim wb As Workbook
 wb = ActiveWorkbook
Und dann wieder aktivieren:
 wb.Activate

Psycho
Member: Budda
Budda Nov 28, 2006 at 11:41:31 (UTC)
Goto Top
Hmm, so siehts nun aus:

Sub auto_open()

Dim s_path As String
Dim wb As Workbook
wb = ActiveWorkbook
s_path = ActiveWorkbook.Path
Workbooks.Open Filename:=s_path & "\Dateiname1.xls"
Workbooks.Open Filename:=s_path & "\Dateiname2.xls"
wb.Activate
End Sub

Das Makro befindet sich in Ursprungsdatei.xls
Wenn ich diese nun öffne kommt nen Makro Fehler:
Objekvariable oder With-Blockvariable nicht festgelegt.

Mir ist auch der Sinn des neuen Codes noch nicht schlüssig wie er bezwecken soll das die urpsungsdatei angezeigt wird obwohl derzeit die Dateiname2.xls angezeigt wird ^^
Mitglied: 8644
8644 Nov 28, 2006 at 11:49:40 (UTC)
Goto Top
Sorry, war ungetestet!
So klappts aber:

Sub auto_open()
 Dim s_path As String                                     
 Dim wb As String                                               
  wb = ActiveWorkbook.Name                             
  s_path = ActiveWorkbook.path                        
  Workbooks.Open Filename:=s_path & "\Dateiname1.xls"      
  Workbooks.Open Filename:=s_path & "\Dateiname2.xls "    
  Workbooks(wb).Activate                                
End Sub

Die Variable wb merkt sich den Namen der ursprünglichen Tabelle

Psycho
Member: Budda
Budda Nov 28, 2006 at 11:59:29 (UTC)
Goto Top
Ja perfekt, besten dank für die prompte hilfe ;)