03.03.2018, 13:39
Hallo liebe Excel Profis,
ich brauch nochmal eure Unterstützung. Ich habe in einer Userform 3 Togglebuttons gegeneinander verriegelt so das immer nur einer aktiv ist. Bei Click wird immer der jeweilige Button auf True gesetzt und die beiden anderen auf False. Soweit funktioniert auch alles wie von mir ertüftelt. Nun soll aber je nach gedrücktem Toggle in Tabelle3 (Pflege) die Caption des Buttons geschrieben werden einfach nur als Krücke für andere Userformen später. Da taucht dann mein Problem auf.
Bei Ausführung bricht er mit der Fehlermeldung 2147417848(80010108) Die Methode Range für das Objekt _Worksheet ist fehlgeschlagen
Am Anfang habe ich die Zelle nur mit Range("B4") angesprochen das führte aber zu Stapelfehlern, weil Excel wohl jedes Change Ereignis wie ein Click Ereignis behandelt und so den ganzen Code durchläuft.
Was in der Ausgabe Zelle dann zu einem häufigen wechsel des Inhalts führt und somit zum Stapelfehler hab ich mir als Laie mal so hergeleitet.
Hab es in der Variante auch mal mit einer Warte Verzögerung versucht was sich aber in der Bedienung der Userform komisch "anfühlt" und auch nicht immer den Stapelfehler unterdrückt hat.
In einem Beitrag hier im Forum hab ich den Hinweis gefunden das die Zelle genau definiert sein soll habe dann noch ActiveWorkbook.Worksheets("Pflege"). vorne an gestellt und zumindest kein Stapelfehler mehr. Aber dafür den Laufzeitfehler :@
Suche jetzt seit mehreren Stunden nach möglichen Lösungsansätzen im WWW und im Forum aber finde nichts was mich der Lösung näher bringt oder ich mit meinem kleinen Wissen begreife. Ich weiß das Togglebuttons im Programmier Sinne nicht die sauberste Lösung sind und Optionbuttons besser geeignet wären aber ich habe in der selben Userform noch eine Abfrage per Optionbuttons und wollte keine zwei und find es mit Togglebuttons auch optisch ansprechender. Auch habe ich mir angelesen das es besser wäre die Caption in eine Variable zu übergeben aber dafür reicht mein Wissen noch nicht aus man wächst an seinen Aufgaben.
Der Code zu den 3 Buttons, leider kann ich von der Arbeit nichts durch die Firewall hochladen. Falls nötig baue ich die Mappe zu Hause nochmal nach und lade sie hoch. Aber vielleicht seht ihr auf Anhieb wo ein Fehler ist.
Private Sub ToggleButtonRegio_Click()
If ToggleButtonSWD.Value = True Or ToggleButtonSWJ.Value = True Then
ToggleButtonSWD.Value = False
ToggleButtonSWJ.Value = False
ToggleButtonRegio.Value = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonRegio.Caption
End Sub
Private Sub ToggleButtonSWD_Click()
If ToggleButtonRegio.Value = True Or ToggleButtonSWJ.Value = True Then
ToggleButtonRegio.Value = False
ToggleButtonSWJ.Value = False
ToggleButtonSWD = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonSWD.Caption
End Sub
Private Sub ToggleButtonSWJ_Click()
If ToggleButtonRegio.Value = True Or ToggleButtonSWD.Value = True Then
ToggleButtonRegio.Value = False
ToggleButtonSWD.Value = False
ToggleButtonSWJ = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonSWJ.Caption
End Sub
Vielen Dank im voraus und einen schönen Samstag
Gruß Micha
ich brauch nochmal eure Unterstützung. Ich habe in einer Userform 3 Togglebuttons gegeneinander verriegelt so das immer nur einer aktiv ist. Bei Click wird immer der jeweilige Button auf True gesetzt und die beiden anderen auf False. Soweit funktioniert auch alles wie von mir ertüftelt. Nun soll aber je nach gedrücktem Toggle in Tabelle3 (Pflege) die Caption des Buttons geschrieben werden einfach nur als Krücke für andere Userformen später. Da taucht dann mein Problem auf.
Bei Ausführung bricht er mit der Fehlermeldung 2147417848(80010108) Die Methode Range für das Objekt _Worksheet ist fehlgeschlagen
Am Anfang habe ich die Zelle nur mit Range("B4") angesprochen das führte aber zu Stapelfehlern, weil Excel wohl jedes Change Ereignis wie ein Click Ereignis behandelt und so den ganzen Code durchläuft.
Was in der Ausgabe Zelle dann zu einem häufigen wechsel des Inhalts führt und somit zum Stapelfehler hab ich mir als Laie mal so hergeleitet.
Hab es in der Variante auch mal mit einer Warte Verzögerung versucht was sich aber in der Bedienung der Userform komisch "anfühlt" und auch nicht immer den Stapelfehler unterdrückt hat.
In einem Beitrag hier im Forum hab ich den Hinweis gefunden das die Zelle genau definiert sein soll habe dann noch ActiveWorkbook.Worksheets("Pflege"). vorne an gestellt und zumindest kein Stapelfehler mehr. Aber dafür den Laufzeitfehler :@
Suche jetzt seit mehreren Stunden nach möglichen Lösungsansätzen im WWW und im Forum aber finde nichts was mich der Lösung näher bringt oder ich mit meinem kleinen Wissen begreife. Ich weiß das Togglebuttons im Programmier Sinne nicht die sauberste Lösung sind und Optionbuttons besser geeignet wären aber ich habe in der selben Userform noch eine Abfrage per Optionbuttons und wollte keine zwei und find es mit Togglebuttons auch optisch ansprechender. Auch habe ich mir angelesen das es besser wäre die Caption in eine Variable zu übergeben aber dafür reicht mein Wissen noch nicht aus man wächst an seinen Aufgaben.
Der Code zu den 3 Buttons, leider kann ich von der Arbeit nichts durch die Firewall hochladen. Falls nötig baue ich die Mappe zu Hause nochmal nach und lade sie hoch. Aber vielleicht seht ihr auf Anhieb wo ein Fehler ist.
Private Sub ToggleButtonRegio_Click()
If ToggleButtonSWD.Value = True Or ToggleButtonSWJ.Value = True Then
ToggleButtonSWD.Value = False
ToggleButtonSWJ.Value = False
ToggleButtonRegio.Value = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonRegio.Caption
End Sub
Private Sub ToggleButtonSWD_Click()
If ToggleButtonRegio.Value = True Or ToggleButtonSWJ.Value = True Then
ToggleButtonRegio.Value = False
ToggleButtonSWJ.Value = False
ToggleButtonSWD = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonSWD.Caption
End Sub
Private Sub ToggleButtonSWJ_Click()
If ToggleButtonRegio.Value = True Or ToggleButtonSWD.Value = True Then
ToggleButtonRegio.Value = False
ToggleButtonSWD.Value = False
ToggleButtonSWJ = True
End If
ActiveWorkbook.Worksheets("Pflege").Range("B4") = ToggleButtonSWJ.Caption
End Sub
Vielen Dank im voraus und einen schönen Samstag
Gruß Micha