Pop-up Fenster bei starten von Excel

dremba

Ensign
Registriert
März 2021
Beiträge
135
Hallo zusammen,
ich möchte ein Pop-Up Fenster das erscheint, wenn ich meine Excel-Datei öffne. Bei dem Fenster soll eine Frage kommen die man mit "Ja" oder "Nein" beantworten kann. Wenn "Ja" schließt sich einfach nur das Pop-up, wenn "Nein" soll sich die Excel-Datei schließen.

Ist das überhaupt so möglich?

Schon mal Danke im voraus :)
 
Wozu machst Du die Datei überhaupt auf, wenn Du auswählen können willst, sie direkt wieder zu schließen?

Für "Ja" kannst Du doch einfach Excel an sich öffnen, nicht über das Öffnen einer .xlsx.
 
Ich kenne den Anwendungsfall nicht und mache mir daher nicht den genauen Gedanken (ich denke mal der TE denkt schon so weit), ich würde aber mal von sowas wie einer "AGB" ausgehen(?)
 
Das geht nur mit aktiviertem VBA, was aber standardmäßig erstmal deaktiviert ist. Und es ist auch fraglich ob jemand eine xlsm einfach so aufmacht.

Ist also eher ungünstig darstellbar.
 
  • Gefällt mir
Reaktionen: TriggerThumb87
Um die Frage zu beantworten:
Ja, alles möglich. Sogar kinderleicht ergooglebar. Bei Problemen in der Umsetzung fragen.
 
Danke, klappt aber noch nicht so ganz. Ich möchte erstmal das Pop-Up Fenster.
Was muss bei prompt rein?
Habe das bis jetzt:


Private Sub Worksheet_Activate()

MsgBox ([vbYesNo,][Mein Text])

End Sub
 
Prompt ist der Text, der im Fenster steht, steht auch so auf der Dokuseite von msgbox. Weiter unten ist auch ein Beispiel, woran du dich orientieren kannst - anstatt bei "no" etwas auszugeben, lässt du halt das Blatt schließen.
 
Worksheet_Activate wäre aber der falsche Event. Workbook_Open dürfte eher passen wenn du das vor jeglicher Bearbeitung abfangen willst.

Aber ehrlich, tu der Menschheit einen Gefallen und lass das. Das wäre schon simpel durch deaktivieren von VBA auszuhebeln und eine xlsm fetzt überhaupt nicht. Es sollte kein Code in normalen Mappen liegen. Sowas verbreitet sich wie Corona im Unternehmen und fliegt dann überall rum. Administrativer Horror.
 
  • Gefällt mir
Reaktionen: SR388 und Turian
Ok, my bad. Bin etwas raus aus VBA, das grobe bekommt man ja noch hin - wenn nicht gibts die Doku.

Aber stimme da zu, (Schlechte geschriebene/unnötige) Makros im Unternehmen sind grausam ;)
 
Makros sind wirklich der Horror, aber vielleicht (ohne den genauen Anwendungsfall zu kennen) als Alternativlösung: Den Zugang zu den (makrolosen) Dateien hinter einem Webformular verbergen welches man abfragen kann.
 
Mit Powershell geht das.
Auf die Schnelle folgender Ansatz:

PowerShell:
Function Test
{
    $InputFile = "C:\MeinPfad\MeinExceldokument.xlsx"
    $ExcelApp = New-Object -Com Excel.Application
    $ExcelApp.EnableEvents = $False
    $ExcelApp.DisplayAlerts = $False
    $ExcelApp.Visible = $False
    $WorkBook = $ExcelApp.WorkBooks.OpenXML($InputFile)

    [Void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    $OUTPUT = [System.Windows.Forms.MessageBox]::Show("Erkennst du die Nutzungsvereinbarung an?","Frage","YESNO","Question")
    If ($OUTPUT -Eq "YES")
    {
        $ExcelApp.DisplayAlerts = $True
        $ExcelApp.Visible = $True
    }
    ElseIf ($OUTPUT -Eq "NO")
    {
        $ExcelApp.DisplayAlerts = $False
        $WorkBook.Close()
        $ExcelApp.Quit()
        [GC]::Collect()
        [GC]::WaitForPendingFinalizers()
        [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$WorkBook) | Out-Null
        [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ExcelApp) | Out-Null
    }
}
Test
 
  • Gefällt mir
Reaktionen: dremba und BAGZZlash
Vielen Dank @NotNerdNotDau werde ich heute Abend direkt ausprobieren.
 
  • Gefällt mir
Reaktionen: NotNerdNotDau
Wenn da in dem Powershell Script alles im If Zweig liegt, dann spart man sich den Garbage Collector und den ganzen anderen Kram. Wozu erst was initialisieren wenn es womöglich danach zerstört wird.

Für wen soll denn diese Excel Datei eigentlich sein? Soll das ein Produkt sein was verkauft und lizensiert wird oder ist das nur interner Einsatz - was ich anhand der Schilderung fast nicht glaube.
 
  • Gefällt mir
Reaktionen: BAGZZlash
Den Code hatte ich auf die Schnelle und freihändig erstellt und sollte nur als grober Anhaltspunkt dienen.
Es ist sicher kein Meisterwerk und ganz sicher ausbau- und verbesserungsfähig.

Für wen das sein soll und aus welchen Gründen der TE die Frage gestellt hat, ist doch völlig Latte.
Da muss man jetzt nicht gleich mit Lizenzfragen kommen und auch nicht unbedingt die Seriosität des Vorhabens und die Glaubwürdigkeit des Hilfesuchenden in Frage stellen.
 
Das ist alles andere als Latte sondern eine Frage des Konzeptes. VBA ist der denkbar schlechteste Ort für diese Abfrage.
wenn es ein Download ist kann man das da schon abfragen, alternativ ginge ein installer der die Nutzungsbedingungen abfragt.
Auf jeden Fall bevor die Datei auf der Platte landet. Denn sowohl der VBA als auch PS lässt sich leicht umgehen, so dass man den Bedingungen nicht zustimmen müsste.
Wie eine Lizenz aussähe ist was anderes, und wenn es nur eine dont be an asshole Lizenz ist. Es ging um die sinnvolle Umsetzung des Wunsches nach Bestätigung der Bedingungen.
 
dremba schrieb:
ich möchte ein Pop-Up Fenster das erscheint, wenn ich meine Excel-Datei öffne.
Ich habe das so verstanden, dass er das für sich haben möchte.
Vielleicht möchte er dahingehend nur herumexperimentieren.
Aber wie auch immer, mich juckt das alles nicht. Ich hatte nur eine Möglichkeit, wie man das machen könnte, aufgezeigt.
 
Zurück
Oben