Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

userform schließen wenn offen

userform schließen wenn offen
16.04.2007 18:04:14
Andreas

Hallo Excelprofis!
Eine Frage: Wenn ich meine Arbeitsmappe öffne, öffnet sich gleichzeitig ein UserForm1. Dabei soll ein eventuell noch offenes UserFormAuswertung geschlossen werden.
Reicht es da das UserFormAuswertung per "Unload UserFormAuswertung" zu schließen oder muß man da vorher abfragen ob das UserFormAuswertung geöffnet ist?
Danke für die Hilfe!
Mit diesem Code öffne ich das UserForm1:


Private Sub Workbook_Open()
UserForm1.Show
Sheets("Auswertung").Unprotect "xyz"
Application.ScreenUpdating = False
Set wks = Worksheets("Auswertung")
'prüfen, ob Autofilter aktiv und ggf. deaktivieren
If wks.AutoFilterMode = True Then wks.AutoFilterMode = False
Sheets("Auswertung").Range("A8:AF1500").Sort Key1:=Range("A8"), Order1:=xlAscending, Header:= _
xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("Auswertung").Protect "xyz"
Unload UserFormAuswertung
Sheets("Eingabe").Range("A1").Select
Application.ScreenUpdating = True
End Sub


mfg Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: userform schließen wenn offen
16.04.2007 18:35:47
Erich G.
Hallo Andreas,
UserFormAuswertung kann beim Öffnen der Mappe nicht offen sein.
Wird sie evtl. durch ein Ereignismakro geöffnet, das durch eine Aktion in Workbook_Open ausgelöst wird?
Ein Problem kannst du mit der Sort-Anweisung bekommen:
Den zu sortierenden Bereich gibst du mit Tabellenblatt an:
Sheets("Auswertung").Range("A8:AF1500").Sort
Beim Key1 hast du die Angabe des Tabellenblatts weggelassen:
Key1:=Range("A8")
Dann soll die Zelle A8 des (zufällig) gerade aktiven Blatts als Key verwendet werden.
Das geht immer dann schief, wenn nicht "Auswertung" das aktive Blatt ist.
Ich habs mal so umgeschrieben:


Option Explicit
Private Sub Workbook_Open()
Application.ScreenUpdating = False
UserForm1.Show
With Sheets("Auswertung")
.Unprotect "xyz"
'prüfen, ob Autofilter aktiv und ggf. deaktivieren
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A8:AF1500").Sort Key1:=.Range("A8"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect "xyz"
End With
Sheets("Eingabe").Range("A1").Select
Application.ScreenUpdating = True
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: userform schließen wenn offen
16.04.2007 18:48:40
Andreas
Hallo Erich!
Danke für die Antwort und Hilfe!
In meinem Fall kann beim öffnen ein UserForm geöffnet sein, da das UserFormAuswertung auf "ShowModal" gestellt ist. Hintergrund ist, mit diesem UserForm werden verschiedene Filter per Schaltfläche ausgelöst und man kann dann im Blatt scrollen ohne jedesmal das UserForm zu schließen.
Nun hat ein Benutzer die Mappe abgespeicher, ohne das UserFormAuswertung zu schließen. Dadurch funktioniert beim erneuten öffnen der Code des UserForm1 nicht mehr richtig, weil eventuell noch ein Filter auf Blatt "Auswertung" liegt.
mfg, Andreas

Anzeige
AW: userform schließen wenn offen
16.04.2007 19:16:33
Erich G.
Hallo Andreas,
nochmal:
UserFormAuswertung kann beim Öffnen der Mappe nicht offen sein, auch wenn sie modeless ist.
Natürlich kann auf der Tabelle ein Autofilter aktiv sein,
das Problem wird mit ".AutoFilterMode = False" beseitigt.
Bau mal über Application.ScreenUpdating = False
eine neue Zeile
Stop
ein und teste, ob da schon eine UF offen ist, wenn du die Mappe öffnest.
(vorher speichern und schließen bei geöffneter UserFormAuswertung)
Nebenfrage: Wo wird UserFormAuswertung aufgerufen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: userform schließen wenn offen
16.04.2007 19:29:28
Andreas
Hallo Erich!
Du hast recht, habe das schließen vom UserFormAuswertung einfach mal auskommentiert. Ist beim wieder öffnen verschwunden.
Das UserFormAuswertung wird per Tastenkürzel aufgerufen.
Ich habe sowieso noch ein Problem, welches viel komplizierter scheint. Ich öffne gleich einen neuen Thread mit einer Beispielmappe, vieleicht kannst du ja mal reinschauen?
Danke für die Hilfe!
mfg, Andreas

AW: userform schließen wenn offen
16.04.2007 19:37:19
Erich G.
Hallo Andreas,
danke für die Rückmeldung - da bin ich ja beruhigt.
Noch ein Hinweis zur Open-Prozedur:
Sheets("Eingabe").Range("A1").Select
wird einen Laufzeitfehler erzeugen, wenn "Eingabe" nicht schon das aktive Blatt ist.
Du kannst das mit zwei Zeilen vermeiden:
Sheets("Eingabe").Select
Range("A1").Select
Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: userform schließen wenn offen
16.04.2007 19:24:52
Erich G.
Hallo Andres,
mir ist da noch etwas aufgefallen:
Warum zeigst du UserForm1 an, BEVOR der Autofilter beseitigt ist,
wenn der doch Probleme bereiten kann?
Probiers mal so:


Private Sub Workbook_Open()
Application.ScreenUpdating = False
With Sheets("Auswertung")
.Unprotect "xyz"
'prüfen, ob Autofilter aktiv und ggf. deaktivieren
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A8:AF1500").Sort Key1:=.Range("A8"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Protect "xyz"
End With
Sheets("Eingabe").Range("A1").Select
Application.ScreenUpdating = True
UserForm1.Show
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: userform schließen wenn offen
16.04.2007 19:46:48
Andreas
Hallo Erich!
Danke für die Hilfe, habe beide Sachen verändert (laufzeitfehler kam natürlich).
Ich mußte gerade einen neuen Thread öffnen, wenn du möchtest kannst du dir dort das "Gesamtkunstwerk" anschauen.
mfg, Andreas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige