Beim Start einer Excel soll anhand eines Zellenwertes eine bestimmte UserForm öffnen?


16.11.2021, 10:39

Kaum zu glauben aber wahr, ich habe die Lösung selber gefunden.

Private Sub Workbook_Open()

'prüft ob dies eine neue Kalkulation ist oder ob es sich um eine existierende Kalkulation handelt

'und öffnet danach das entsprechende UserForm

If Worksheets("Kopfdaten").Range("d1") < 1 Then

  uf_startfenster.Show

Else: uf_kopfdaten.Show

End If

End Sub

2 Antworten

nicht vergessen den fortlaufenden wert zurück zu setzen , den sonst wird dir das bei jedem mal öffnen passieren . bzw irgendwo ein verarbeitet erledigt setzen .


NeffetsF 
Fragesteller
 16.11.2021, 10:47

danke für den Input. Werde ich noch prüfen.
Es ist aber so angedacht, dass ich die Kalkulation in einem Vorlage Ordner ablege und dieser dann bei jeder neuen Kalkulation zur jeweilgen Anfrage rein kopiert wird.
dadurch sollte der Zellenwert immer, da ja von mir so hinterlegt, leer bzw. 0 sein.
Ich möchte nun auch in weiteren schritten versuchen die Datei nach der bearbeitung immer automatisch schützen. Das möchte ich damit der Kalkulator gezwungen werden soll bei einer Änderung eine neue Version an zu legen.
Für den Blattschutz habe ich mir überlegt, dass dies nicht beim beenden der Datei passieren soll da ich nicht weiß wie ich das Programmiertechnisch hin bekomme wenn der Kalkulator speichern oder Speichern Unter benutzt.

Deshalb möchte ich dies umgehen bzw. prozesssicher machen in dem ich bei jedem Start der Datei alles erst mal schütze. Somit kann die Datei und dessen Inhalt immer angesehen werden aber nur dann verändert werden wenn eine neue revision angelegt wird (Hier dann also wenn der Button gedrückt wird den Blattschutz aufheben.

Gruß NeffetsF

0

Das Ereignis, welches du abfangen musst, ist Workbook_Open.


Suboptimierer  16.11.2021, 10:29

Bei der Prüfung fehlen eckige Klammern:

If [D1] < 1 Then

0