Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1640to1644
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
Inhaltsverzeichnis

VBA vereinfachen??

VBA vereinfachen?
21.08.2018 09:41:15
ulki031
Hallo Leute!
Ich bin es noch mal.
Kann es sein, dass paar Makros in meinen Worksheets mein Excel ständig überfordern und zum Absturz bringen?
Ich hab ca. 60 Checkboxen die, wenn sie angeclickt oder verändert werden auf einem zweiten Tabellenblatt Spalten aus oder eingeblendet.
Für jede der Checkboxen habe ich eine Code der so ähnlich wie dieser hier aussieht:
Private Sub CheckBox1_Change()
ThisWorkbook.Worksheets("Punktesystem").CheckBox1.Value = ThisWorkbook.Worksheets("Checkliste") _
.Rows("20:21").Hidden
ThisWorkbook.Worksheets("Punktesystem").CheckBox1.Value = False = ThisWorkbook.Worksheets(" _
Checkliste").Rows("20:21").Hidden = True
End Sub
Kann man das noch irgendwie vereinfachen so dass mein Excel nicht ständig stirbt sobald ich auch nur eine Box anklicke?
Vielen Dank schon mal...bin echt am verzweifeln.
:(
Lg Ulli

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA vereinfachen?
21.08.2018 10:02:30
EtoPHG
Hallo Ulli,
...paar Makros in meinen Worksheets mein Excel ständig überfordern...
Ja. Wenn sie so geschrieben sind, wie Deine!
In jedem Checkbox_Change veränderst du den Zustand der Checkbox, was wiederum zu einem Change der Checkbox führt.
Was soll mit den Zeilen 20:21 geschehen, wenn die Checkbox1 gewählt ist, sollen sie angezeigt oder ausblendet werden?
Gruess Hansueli
AW: VBA vereinfachen?
21.08.2018 10:23:38
ulki031
Hallo Hansueli!
Sobald die Checkbox angewählt ist sollen diese Zeilen eingeblendet werden.
Mein Problem ist, dass ich versuche eine möglichst Fehlerquellen freie Checkliste zu erstellen.
Wenn also in Tabellenblatt 1 ein Wert verändert wird der bestimmte Bedinungen erfüllt (Wenn / Dann = WAHR), dann wird eine Checkbox automatisch aktiviert. Diese wiederum soll in einem anderen Tabellenblatt die Zeilen z.B. 20 bis 22 einblenden. Im Endeffekt möchte ich dass sich diese Checkliste selbst zusammen stellt und auch nur Felder angezeigt werden wenn diese auch relevant sind.
Dafür gibt es bestimmt bessere Wege,...aber mit meinen VBA Kenntnissen funktioniert das halt nur bedingt.
Anzeige
Ansatz ist schon völlig unbrauchbar...
21.08.2018 13:46:09
EtoPHG
Hallo,
Mir scheinen schon dein Ansätze, bzw. das was ich aus den Posts herausziehen kann, für dieses Unterfangen völlig verfehlt.
1. Was ist eine "... Fehlerquellen freie Checkliste"? Ich glaube jeder Entwickler sollte den Anspruch haben, mögliche Fehler zu verhindern.
2. Zitat "... Tabellenblatt 1 ein Wert verändert wird der bestimmte Bedinungen erfüllt ... dann Checkbox automatisch aktiviert..." Wieso? Was hat dann die Checkbox für den Anwender noch für einen Zweck? Was passiert, wenn die Bedingung der User-Aktion widerspricht?
3. Das ausprogrammieren mit hardwired Begriffen wie Range("20:21") zieht Wartungsaufwand, Schreibfehler, Testauwand etc. geradezu magisch an. Warum nicht abhängig von den geänderten Quellen und deren relativen Position die Ziele verändern (ohne den Umweg) über Checkboxen?
Ohne den ganzen VBA Code zu sehen, bzw. besser eine Beispielmappe, ist das Ganze ein Stochern im Nebel und nicht zielführend.
Gruess Hansueli
Anzeige
AW: VBA vereinfachen?
21.08.2018 10:08:24
Matthias
Hi
ThisWorkbook.Worksheets("Checkliste").Rows("20:21").Hidden = ThisWorkbook.Worksheets("Punktesystem").CheckBox1
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige