Ausgeblendetes Tabellenblatt einblenden und dann aktivieren möglich?
Und wieder eine Frage:
Ich habe ausgeblendete Tabellenblätter und möchte nun über einen Command-Button, dass sich die Userform schließt, ein bestimmtes Tabellenblatt eingeblendet, dann aktiviert und dann eine Userform öffnet. Im Debug-Modus klappt es, aber wenn ich es direkt versuche, wird zwar die Userform geschlossen aber das Tabellenblatt nicht eingeblendet und aktiviert. Wenn ich die Userform schließe, dann aber wird das Tabellenblatt eingeblendet.
Habe wohl eine falsche Reihenfolge in diesem Code:
Private Sub CMD_More_Click()
CMD_More.TakeFocusOnClick = False
Unload Me
Worksheets("Fertigungsprüfplan Seite 2").Visible = True
Call change1
End Sub
Public Sub change1()
Worksheets("Fertigungsprüfplan Seite 2").Select
Range("A1").Select
Load UserFormInspectionFeature2
UserFormInspectionFeature2.Show
End Sub
Kann da auch jemand helfen? Danke im Voraus. Ich möchte es nur verstehen...
4 Antworten
So gehts:
Private Sub CMD_More_Click()
CMD_More.TakeFocusOnClick = False
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle2").Activate
Call change1
Unload Me
End Sub
Public Sub change1()
Worksheets("Tabelle2").Select
Range("A1").Select
Load UserFormInspectionFeature2
UserFormInspectionFeature2.Show
End Sub
Du hast zu früh Unload Me aufgerufen.
Sorry für die lange Abwesenheit... hatte Probleme. Deine Lösung hat funktioniert und somit bin ich zufrieden.
Das stimmt, aber wenn ich es auf True setze, dann zeigt er mir nicht das eingeblendete Tabellenblatt an und wechselt das auch nicht. Das nächste Problem ist, dass meine Abfragen dann irgendwie fehlerhaft sind: Ist es ein Gewinde? Ja/Nein, ist das Merkmal zu messen? Ja/Nein
Also sind ein paar Abfragen mit Userforms und hier kommt irgendwas durcheinander. Jedenfalls habe ich nun wieder zurück auf False gesetzt und keine Probleme mehr. True wäre mir lieber gewesen, damit so lange die Form auf ist die Zellen "gesperrt" sind. Aber dann lieber so und keine Probleme.
Private Sub CMD_More_Click()
Userform1.hide 'oder Unload (Userform1)
Worksheets("Fertigungsprüfplan Seite 2").Visible = True
Call change1
End Sub
Public Sub change1()
Worksheets("Fertigungsprüfplan Seite 2").Activate
Range("A1").Select 'Nicht zingend nötig, stört aber auch nicht, es sein denn es gibt auch "Selection_Change_Event")
UserFormInspectionFeature2.show (vbModeless) 'oder (vbModal)
End Sub
Sorry für die Abwesenheit, ich versuche mal wieder durchzuhalten. Hatte zu viel um die Ohren.
Mir ist nicht klar, was das Select in der 1. Codezeile von change1() machen soll. Müsste es nicht .Activate heißen?
Ist mir nicht aufgefallen, dass es falsch war. Habe es nun mit Activate, aber ich stelle keinen Unterschied fest. Hätte es nicht funktioniert, dann wäre es wohl aufgefallen. Aber danke. :-)
Ändert es etwas, wenn Du statt Unload.Me versuchst, das Objekt mir Me.Hide nur erst einmal auszublenden? Könnte auf Dauer Speicherprobleme geben, aber vielleicht hilft es, den Fehler einzugrenzen.
Das mit Me.Hide finde ich elegant und es dürfte auch kein Speicherleck geben, da der Prozess auf niedrige Priorität gesetzt wird und problemlos in der swapfile.sys Platz hat.
Und lag wohl auch daran, dass die UserForm Showmodal = True war