![]() |
|
(Makro) Fenster öffnet nicht - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: (Makro) Fenster öffnet nicht (/thread-29301.html) Seiten:
1
2
|
(Makro) Fenster öffnet nicht - Vittel - 18.02.2026 Hallo zusammen, ich nutze Microsoft Office Professional Plus 2024. (Vorher hatte ich Office 2019 drauf da funktionierte es) Ich habe eine Exceldatei welche ich hier angehängt habe, bei der öffnet sich das Read new HX nicht. (Im Trust Center habe ich die Makroeinstellungen auf Aktiviert/Vertrauen gestellt.) Hat von euch einer eine Idee, was ich einstellen muss, um das Fenster zu öffnen bei Klick auf „Read new HX“?
RE: (Makro) Fenster öffnet nicht - Vittel - 18.02.2026 (18.02.2026, 14:50)Vittel schrieb: Hallo zusammen, RE: (Makro) Fenster öffnet nicht - Flotter Feger - 20.02.2026 Hallo, darf ich dir mal einen Tipp geben? Niemand lädt sich 4,5 MB runter. 1) 99,9% der Datei braucht man nicht. 2) ich denke nicht, dass es in diesem Forum so viele Helfer gibt, die 2024 haben. ... und da es laut deiner Beschreibung so aussieht, als wäre es ein ganz spezielles Problem von 2024, können die Leute ohne 2024 wohl auch nicht helfen. Eventuell reicht es aber schon mal den kleinen Code-Schnipsel hier reinzustellen, über den der File-Dialog aufgerufen und ausgewertet wird. Irgendwo da sollte sich das Problem befinden. ODER ... Welches Betriebssystem ist vorher/nachher in Verwendung ? RE: (Makro) Fenster öffnet nicht - maninweb - 20.02.2026 Hallo, so wie ich das sehe, sieht das wohl so aus, dass Du ein Browser-ActiveX-Objekt erzeugst, um eine Datei zu öffnen. Insofern ist das völlig normal, dass Excel 2024 das verweigert, denn diese Art Code ist ein deutliches Sicherheitsrisiko. Google mal nach Code, um eine Datei mit den Excel-Objekten zu öffnen bzw. auszuwählen. Bspw. basierend auf GetOpenFilename (https://learn.microsoft.com/de-de/office/vba/api/excel.application.getopenfilename). Dann müsstest Du den Deinen Code entsprechend umschreiben. Gruß RE: (Makro) Fenster öffnet nicht - Vittel - 20.02.2026 Betriebssystem ist Win11 Pro. Habe es auch mit Office 2021 getestet, auch damit öffnet es sich nicht. Diese Einstellungen habe ich eingestellt: Trust Center Makroeinstellungen: Alle Makros aktivieren + VBA-Makros + Excel 4.0-Makros aktiviert Entwicklertools aktiviert Speicherorte habe ich auch auf lokal gesetzt, auch da keine änderung. File-Dialog wie macht man das? Hatte es probiert unter Entwicklertools, aber da passierte nichts. Ich habe fast alle Zeilen gelöscht, jetzt ist die Excel nur noch einige KB groß. (ist in den Attachments) Attachments Ich hoffe, das hilft, um herauszufinden, warum es sich nicht öffnet. RE: (Makro) Fenster öffnet nicht - RPP63 - 21.02.2026 Moin! Die Übergabe einer leeren Variable führt zum Abbruch: ![]() ![]() Gruß Ralf RE: (Makro) Fenster öffnet nicht - Vittel - 21.02.2026 Das Bild war gut, so konnte ich die Stelle finden, aber aus unwissenheit nicht beheben. Eventuell sollte ich noch erwähnen: Ich habe die Datei nicht erstellt, den Ersteller gibt es nicht mehr, die Datei ist schon einige Jahre alt. Leider weiß ich aus dem Grund nicht, wie ich es beheben kann. Bin kein Profi, was dieses betrifft, darum muss ich blöde Fragen zur Behebung stellen. Für mich ist es wichtig, da ich die Datei benötige. Meine Frage habe ich auch in einem anderen Forum gestellt (Crossposting): https://www.office-hilfe.com/support/threads/makro-fenster-oeffnet-nicht.60129/ RE: (Makro) Fenster öffnet nicht - Vittel - 26.02.2026 Mag mir BITTE einer sagen, wie ich es behoben bekomme? Möchte gerne den Laptop, auf dem die Datei funktioniert, weitergeben an meinen Sohn. Danke RE: (Makro) Fenster öffnet nicht - RPP63 - 28.02.2026 Ich habe mal folgende Anfrage an Copilot gestellt: Kannst Du mir bitte folgenden VBA-Code analysieren? Set wShell = CreateObject("WScript.Shell") Set oExec = wShell.Exec("mshta.exe ""about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>""") sFileSelected = oExec.StdOut.ReadLine Die Antwort war: Der Code, den du zeigst, ist ein bekannter VBA‑Trick, um einen Dateiauswahldialog ohne API‑Deklarationen zu öffnen – aber er nutzt dafür einen eher ungewöhnlichen und sicherheitstechnisch fragwürdigen Weg über mshta.exe und eingebettetes HTML/JavaScript. ? Was der Code macht – in Klartext Der Ablauf ist: WScript.Shell wird erzeugt. Über wShell.Exec wird mshta.exe gestartet – ein Host für HTML‑Anwendungen. mshta lädt eine Mini‑HTML‑Seite aus einem about:‑String: Sie enthält ein <input type=file>‑Element. Ein Script führt automatisch FILE.click() aus → der Dateiauswahldialog öffnet sich. Nach der Auswahl wird der Dateipfad über GetStandardStream(1).WriteLine(FILE.value) an VBA zurückgegeben. Das Fenster wird sofort geschlossen und auf Größe 0×0 gesetzt. VBA liest die Ausgabe über oExec.StdOut.ReadLine. Ergebnis: sFileSelected enthält den vollständigen Pfad der ausgewählten Datei. ? Detaillierte Analyse der einzelnen Teile 1. Erzeugen des Shell‑Objekts vba Set wShell = CreateObject("WScript.Shell") Standard‑VBA‑Technik, um externe Programme zu starten. 2. Starten von mshta.exe mit eingebettetem HTML vba Set oExec = wShell.Exec("mshta.exe ""about:<input type=file id=FILE> ... """) mshta.exe ist ein Windows‑Programm, das HTML‑Anwendungen (HTA) ausführt. Der about:‑Trick erlaubt, HTML direkt als String zu übergeben. Das HTML erzeugt ein unsichtbares Fenster mit einem Dateiauswahlfeld. 3. Automatisches Öffnen des Dateidialogs html FILE.click(); Das <input type=file> wird automatisch geklickt → der Benutzer sieht den Dateiauswahldialog. 4. Rückgabe des Dateipfads js new ActiveXObject('Scripting.FileSystemObject') .GetStandardStream(1) .WriteLine(FILE.value); GetStandardStream(1) = Standard Output (stdout) WriteLine(FILE.value) = gibt den Dateipfad an VBA zurück 5. Lesen der Ausgabe in VBA vba sFileSelected = oExec.StdOut.ReadLine Damit landet der Dateiname in der Variablen. ⚠️ Sicherheits- und Kompatibilitätsaspekte 1. mshta.exe ist veraltet Microsoft stuft mshta.exe inzwischen als deprecated ein. Viele Admins blockieren es, weil es oft für Malware missbraucht wurde. 2. ActiveX + HTA = potenziell unsicher Der Code ist harmlos, aber die Technik ist dieselbe, die Schadsoftware nutzt. 3. Funktioniert nicht mehr zuverlässig Unter Windows 11 teilweise blockiert Unter restriktiven Gruppenrichtlinien oft deaktiviert In Office mit gehärteten Makroeinstellungen kann es scheitern ? Vorteile der Methode Kein API‑Code nötig Funktioniert ohne Referenzen Sehr kompakt Öffnet einen echten Windows‑Dateidialog ? Nachteile Abhängig von mshta.exe (veraltet, unsicher) Kann durch Sicherheitsrichtlinien blockiert sein Nicht zukunftssicher Nicht plattformübergreifend (nur Windows) ? Empfohlene Alternative (viel sicherer & stabiler) Wenn du nur einen Dateidialog brauchst, ist FileDialog die beste Lösung: vba Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) If fd.Show = -1 Then sFileSelected = fd.SelectedItems(1) End If Keine externen Programme Keine ActiveX‑Tricks Funktioniert in allen modernen Office‑Versionen RE: (Makro) Fenster öffnet nicht - RPP63 - 28.02.2026 Ich bat um Verbesserung: Eine robuste, moderne und völlig unkritische Lösung für einen Dateiauswahldialog in VBA ist eine kleine, gekapselte Funktion auf Basis von Application.FileDialog. Sie kommt ohne API‑Deklarationen, ohne mshta.exe und ohne ActiveX‑Tricks aus und funktioniert stabil in allen aktuellen Office‑Versionen. ? Saubere, empfohlene VBA‑Funktion für einen Dateiauswahldialog Code: Function SelectFile(Optional ByVal Title As String = "Datei auswählen", _? Wie du die Funktion verwendest Code: Dim Datei As String? Warum diese Lösung besser ist
|