Ausgeblendetes Tabellenblatt einblenden und dann aktivieren möglich?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:eigene Erfahrung

fx8350 
Beitragsersteller
 15.09.2020, 21:52

Und lag wohl auch daran, dass die UserForm Showmodal = True war

1
geri3d  15.09.2020, 21:54
@fx8350

Das ist standard, hält aber die 2. Userform nicht davon ab angezeigt zu werden.

Modal bedeutet nur dass man nichts anderes anklicken kann als auf der Form.

2
fx8350 
Beitragsersteller
 15.09.2020, 22:02
@geri3d

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.

2
fx8350 
Beitragsersteller
 15.10.2020, 19:01

Sorry für die lange Abwesenheit... hatte Probleme. Deine Lösung hat funktioniert und somit bin ich zufrieden.

1
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

fx8350 
Beitragsersteller
 15.10.2020, 19:01

Sorry für die Abwesenheit, ich versuche mal wieder durchzuhalten. Hatte zu viel um die Ohren.

0

Mir ist nicht klar, was das Select in der 1. Codezeile von change1() machen soll. Müsste es nicht .Activate heißen?


fx8350 
Beitragsersteller
 15.09.2020, 21:59

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. :-)

1

Ä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.


geri3d  16.09.2020, 08:02

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.

0