Automatisch beim Öffnen einer Excel Mappe eine zweite bestimmte Mappe mit öffnen

Klaus96

Cadet 4th Year
Registriert
Sep. 2015
Beiträge
118
Hi
Kann mir jemand sagen wie ich es schaffe, dass sich beim Öffnen einer Excel Mappe, direkt eine zweite vorher festgelegte mit öffnet?
 
Die Primitive Idee mit einem Link gleich 2 Mappen zu öffnen meinst du nicht? ;)

Code:
Sub auto_open()
 Workbooks.Open "C:\Mappe.Xls"
End Sub
Das muss in ein VBA-Modul der Start-Mappe die somit als XLSM abgelegt werden muss.

CN8
 
Auf dem Weg bzw einem ähnlichen habe ich es schon versucht aber es klappt nicht.
Also ich habe es jetzt auch nochmal alles nach deinem Beispiel eingeben und es klappt nicht.
Ergänzung ()

PHP:
Sub auto_open()

'

' auto_open Makro

'

 

'

    Application.WindowState = xlMinimized

    Workbooks.Open(Filename:="C:\Ordner\Ordner\Mappe.xlsm").RunAutoMacros Which _

        :=xlAutoOpen

    Windows("Mappe.xlsm").Activate

    Application.WindowState = xlMaximized

   End Sub

Das ist der Code eines ehemaligen Kollegen den ich mir kopiert habe aber dieser funktioniert auch nicht.
Kurioserweise Funktioniert er aber in der original Datei. Ich kann dort auch den Datei Namen ändern und er macht was er soll nur eben in meiner Datei nicht.
 
Zuletzt bearbeitet:
Probiere da etwas zu machen:

VBS Script (.vbs)
Code:
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
strCurrentFolderPath = Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\"))
objExcel.Visible =true
objExcel.Workbooks.Open(strCurrentFolderPath & "\Microsoft Excel-Arbeitsblatt (neu).xlsx")
Set objExcel = Nothing

Als reines .vbs öffnet excel die "Microsoft Excel-Arbeitsblatt (neu).xlsx"-Datei im gleichen Verzeichnis.
 
Wenn ich das eingebe sagt er mir

Fehler beim Kompilieren:
Außerhalb einer Prozedur ungültig


Oder Gehört das ins selbe Modul?
Dann kommt der Fehler

Laufzeitfehler '424':
Objekt erforderlich

und er Makiert mir diese Zeile
PHP:
strCurrentFolderPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))


Ich habe jetzt Feierband und habe zuhause mal eine exel datei erstellt und es dort probiert.
Kurioserweise funktioniert es da mit deinem Code
PHP:
    Sub auto_open()
     Workbooks.Open "C:\Mappe.Xls"
    End Sub
 
jepp, bei mir gehts auch so, jetzt erst probieren können:

Code:
Sub auto_open()
        
'Dim objExcel
'Set objExcel = CreateObject("Excel.Application")
'strCurrentFolderPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
'objExcel.Visible = True
'objExcel.
Workbooks.Open ("H:\...\Microsoft Excel-Arbeitsblatt (neu).xlsx")
'Set objExcel = Nothing

End Sub

ohne Auskommentierung gehts aber auch, aber es öffnet ein neues Excel.
Liegt bei dir vermutlich an den Sicherheitseinstellungen für Makros.
Und ich habe temp. Windows Script Host aktiviert, deswegen bei dir:
Laufzeitfehler '424':
Objekt erforderlich
.
 
Zuletzt bearbeitet:
OK dann Danke ich euch erstmal für eure Hilfe:)
Ich werde mich morgen melden wenn ich es auf der Originalen Datei testen kann.
Ergänzung ()

So ich bin jetzt wieder auf der Arbeit und komischerweise Funkturm nicht mal der Code
PHP:
Sub auto_open()
 Workbooks.Open "C:\Mappe.Xls"
End Sub
Auch nicht in einer neu angelegten Datei was ja bei mir zuhause gibt.
Und deinen Code Engine möchte er ebenso nicht wie gewollt abspielen.
Ich bekomme aber auch keine Fehler Meldung sondern es passiert einfach nichts.
 
Versuche mal das Makro auto_open aus Ansicht->Makros aufzurufen.
Also nur das mit Workbooks.Open "C:\Mappe.Xls"
dort befindet sich auch eine Mappe.Xls ?

Meins läuft schon, es startet ja nur eine zusätzliche Instanz von Excel, ist auch für eine .vbs gedacht und
Code:
strCurrentFolderPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
läuft im Makro nicht wie gewollt.

Nachtrag:
Windows Script Host
wieder deaktivieren nicht vergessen.
 
Zuletzt bearbeitet:
Habe ich gemacht
Es passiert wieder das selbe und zwar nichts :D

Ok deinen Nachtrag hatte ich noch nicht gelesen da kümmer ich mich jetzt drum
Ergänzung ()

Jetzt funktioniert es zur Hälfte:D
Ich habe eine neu erstellte Test Datei und das Original
Bei beiden funktioniert es durch direkte Anwahl was ja schon mal ein großer Fortschritt ist.
Aber automatisch funktioniert es nur bei der Test Datei.
Ich habe den selben Code bei beiden genutzt.

Was den Windows Script Host angeht muss ich sagen das ich nicht weiß wo ich ihn finde es aber auch sehr wahrscheinlich ist das ich dort keine Berechtigung habe um darauf zuzugreifen bzw dort etwas zu ändern.
 
Das ist schon alles so eingestellt
Also alle Makros aktiviert und Zugriff auf vba-projektobjektmodell erlauben.
Was meinst du mit Std.? Standard wiederherzustellen? Welchen Standard ?

Eine Zusätzliche Frage
Gibt es eine Möglichkeit die zu öffnende Datei nach dem Öffnen automatisch schließen zu lassen?
 
Kurios, das.
Ist im Büro die Makrosicherheit so hochgejubelt, dass kein Auto-Makro anläuft?
Wie gesagt muss der Code in ein Modul. Im Code der Mappe (Diese Arbeitsmappe, This Workbook) muss der Makroname workbook_open() lauten.

Gibt es eine Möglichkeit die zu öffnende Datei nach dem Öffnen automatisch schließen zu lassen?
Ja.
(Wer hätte das gedacht? :D)

Mit ActiveWorkbook.Close (False) {False unterdrücke die Schließrückfrage nach Änderungen, andenrenfalls True anwenden} schließt man die aktive Mappe. Workbooks("Name-der-Mappe-aber-ohne-den-Pfad.XLSX").Close schließt eine bestimmte offene Mappe, wieder kann man (False) oder (True) ergänzen.

Allerdings, so interpretiere ich die Frage, muss diese Aktion dann in ein anderes Makro der zuerst geöffneten Mappe:
sub auto_close()
Wieder im Module, im Mappencode lautet es workbook_beforeclose().

CN8
 
Ok vielen dank das kann ich aber erst morgen Nacht testen wenn ich wieder arbeiten bin.
 
Ich habe es getestet und nicht hinbekommen das ist aber auch nicht weiter schlimm. Das ich jetzt über das Makro Dateien öffnen kann (Warum auch immer das auf der Arbeit nicht so recht klappt und zuhause einwandfrei) macht das Leben meiner Kollegen schon deutlich einfacher.
Also dann an dieser Stelle vielen Dank für eure Hilfe.
 
Also, auf der Arbeit gehts gar nicht? Nicht mal manuell starten aus Ansicht->Makros?
Der Systemadministrator hat Sicherheitsrichtlinien eingerichtet, um einen bestimmten Typ aktiver Inhalte für die Organisation zu deaktivieren (z. B. Alle Makros ohne Benachrichtigung deaktivieren).

Mehr also unten gibts wohl nicht zu sagen, außer, wende dich an den Administrator.
Lies dir das zu Makros noch mal durch, mehr gibts vermutlich auch nicht einzustellen.
https://support.office.com/de-de/ar...-dateien-12b036fd-d140-4e74-b45e-16fed1a7e5c6
und
https://support.office.com/de-de/ar...c02-baa5-1fdba1a11b53?ui=de-DE&rs=de-DE&ad=DE
 
Doch über die normale Anwahl geht es
Und wenn ich eine neue Datei erstelle geht's auch da automatisch.

Das mit dem Vertrauenswürdige Datei werde ich mal testen allerdings ist mir keine Statusleiste aufgefallen welche sagt das die Datei nicht vertrauenswürdig ist.
 
Wenn die »Auto-Opens« tun sollten die »Auto-Closees« auch funktionieren.

Scheitert denn meine Mappen-Schließ-Syntax an sich?

CN8
 
Ich habe es jetzt noch mal in einer neuen Datei getestet und es funktioniert(hätte ich gleich machen sollen aber naja :) )
Nun hinterlässt er aber eine Leere offene Excel Instanz.

Aber dennoch danke ich weiß damit im Grunde alles was ich wissen muss/wollte.
 
Hmmm… Wenn XL nicht läuft und ich die Startrampenmappe starte, was tue und wieder schließe bleibt naturgemäß ein leeres XL übrig.
Die Applikation mit in den Tod zu reißen könnten AddIns bewerkstelligen (meine ich), bei normalen Mappen würde ich fürchten mir andere Arbeit ungewollt das Klo runterzuspülen ;)

CN8
 
cumulonimbus8 schrieb:
Hmmm… Wenn XL nicht läuft und ich die Startrampenmappe starte, was tue und wieder schließe bleibt naturgemäß ein leeres XL übrig.
Die Applikation mit in den Tod zu reißen könnten AddIns bewerkstelligen (meine ich), bei normalen Mappen würde ich fürchten mir andere Arbeit ungewollt das Klo runterzuspülen ;)

CN8

Naja, es sei den du machst eien Prüfung, ob nach dem Schließen deiner beider Mappen, noch weitere Mappen da sind. Wenn dies nicht der Fall ist, killst du die XL Instanz.
 
Zurück
Oben