hier meine Problemstellung: Aus einer Word-Datei heraus soll eine Excel-Datei (Zieldatei) geöffnet werden. In dieser Exceldatei soll ein Autofilter einer Tabelle mit einem Kriterium versehen werden.
Mein Lösungsansatz: In der Word-Datei befindet sich ein Hyperlink, über den sich eine "Zwischendatei" öffnen lässt. Beim Öffnen der Zwischendatei wird mittels Workbook_Open ein Code ausgeführt, der die Zieldatei öffnet und den Filter entsprechend setzt.
Das Problem: Öffne ich die Zwischendatei händisch, funktioniert der Code einwandfrei. Auch beim Öffnen der Zwischendatei über den Hyperlink läuft der Code reibungslos durch. Jedoch wird nach der letzten Code-Sequenz die Zieldatei nicht angezeigt. Auf dem Bildschirm erscheint nur die Excel-App ohne geöffnetes Sheet.
Was ich bereits versucht habe:
Zunächst dachte ich, es liegt an irgendwelchen Sicherheitseinstellungen. Wenn die per Hyperlink geöffnete Zwischendatei jedoch in geschützter Ansicht geöffnet wird (Makros müssen zunächst per Klick aktiviert werden) dann funktioniert alles wunderbar und liefert das korrekte Ergebnis (was ja nicht unbedingt logisch ist). Ist die Zwischendatei jedoch als vertrauenswürdige Datei eingestuft, erscheint am Ende nur die Excel-App ohne geöffnetes Sheet.
Am Ende des Codes möchte ich die Zwischendatei sinnvoller Weise schließen. Ich habe vermutet, dass ich dabei einen Fehler mache. Das Schließen der Zwischendatei habe ich deshalb komplett aus dem Code entfernt, daran kann es also auch nicht liegen.
Am Ende des Codes habe ich Application.visible eingefügt - bringt nichts (keine Ahnung was das genau ist, pure Verzweiflung).
Am Ende des Codes habe ich die Zieldatei erneut angewählt, ein Sheet aktiviert etc. bringt alles nichts.
Hier der gekürzte Code der Zwischendatei (ich bin absolut kein VBA Profi, mir ist also bewusst, dass man den Code bestimmt viel besser gestalten kann...):
Public Sub Workbook_Open()
Application.Visible = True
Call Zeug
Application.Workbooks("NGUS-10000-000.xlsm").Activate 'bringt nix
ActiveWorkbook.Sheets("docindex").Select 'bringt nix
Application.Visible = True 'bringt nix
End Sub
Sub Zeug()
Dim Var1 As String
Dim Filename As String
Filename = ThisWorkbook.Name
Var1 = Left(Filename, 10)
Application.Workbooks.Open "Zieldatei"
Application.Workbooks("Zieldatei").Activate
Application.Visible = True
ActiveWorkbook.Sheets("docindex").Select
Call resetfilters
ActiveWorkbook.ActiveSheet.ListObjects("docindex").Range.AutoFilter Field:=9, Criteria1:="*" _
+ Var1 + "*"
ActiveWorkbook.ActiveSheet.ListObjects("docindex").Range.AutoFilter Field:=14, _
Criteria1:="released"
Application.Workbooks("NGUS-10000-000.xlsm").Activate
End Sub
Sub resetfilters()
Filter der Zieldatei werden zurückgesetzt
End Sub
Vielen Dank im Voraus für die Hilfe!
MfG Phil