Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
(Makro) Fenster öffnet nicht
#1
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“?

[Bild: 2025-10-04-20h33-17.png]


Angehängte Dateien
.xlsm   Images_withCS.xlsm (Größe: 4,5 MB / Downloads: 3)
Zitieren
#2
(18.02.2026, 14:50)Vittel schrieb: Hallo zusammen, 
ich nutze Microsoft Office Professional Plus 2024. (Vorher hatte ich Office 2016 drauf da funktionierte es) (Alle Einstellungen sind Gleich gesetzt, jedenfalls habe ich es mit einander abgeglichen)
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“?

[Bild: 2025-10-04-20h33-17.png]
Zitieren
#3
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 ?
_________
VG Sabina
Zitieren
#4
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...enfilename). Dann müsstest Du den Deinen Code
entsprechend umschreiben.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2022
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Zitieren
#5
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.


Angehängte Dateien
.xlsm   Images_withCS.xlsm (Größe: 52,12 KB / Downloads: 6)
Zitieren
#6
Moin!
Die Übergabe einer leeren Variable führt zum Abbruch:
[Bild: UmxYv7u.png]

[Bild: lRIeSrF.png]

Gruß Ralf
Zitieren
#7
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/thr...cht.60129/
Zitieren
#8
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
Zitieren
#9
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
Zitieren
#10
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", _
                    Optional ByVal InitialPath As String = "") As String
    Dim fd As FileDialog
    Dim result As String

    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        .Title = Title
        .AllowMultiSelect = False

        If Len(InitialPath) > 0 Then
            If Dir(InitialPath, vbDirectory) <> "" Then
                .InitialFileName = InitialPath & "\"
            End If
        End If

        If .Show = -1 Then
            result = .SelectedItems(1)
        Else
            result = ""
        End If
    End With

    SelectFile = result
End Function

? Wie du die Funktion verwendest
Code:
Dim Datei As String
Datei = SelectFile("Bitte eine Datei wählen", "C:\Users\Ralf\Documents")

If Datei <> "" Then
    MsgBox "Ausgewählte Datei: " & Datei
Else
    MsgBox "Keine Datei ausgewählt."
End If

? Warum diese Lösung besser ist
  • Keine Sicherheitsrisiken (kein mshta, kein ActiveX, kein HTML‑Injection)
  • Kompatibel mit Windows 10/11 und Office 2016–365
  • Unternehmensrichtlinien blockieren sie nicht
  • Dialog sieht nativ aus und verhält sich wie der Windows‑Explorer
  • Einfach erweiterbar (Filter, Startordner, Mehrfachauswahl)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions