Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Algo für true-false von CheckBoxen

Algo für true-false von CheckBoxen
13.07.2018 09:14:30
CheckBoxen
Hallo zusammen,
ich baue immer noch an meinem Tool und die Optimierung klappt es einwandfrei, inkl. der Version mit der variablen Anzahl der Packstücke (habe ich in beiden Berechnung auf 25 max. begrenzt, wodurch die Laufzeit extrem gestiegen ist).
Nun eine weitere Frage an die Experten:
In meinem Tool soll nach der Optimierung eine Feinplanung stattfinden dergestalt, dass zunächst die optimierten Packstücke mit den dazugehörigen Aufträgen in die Planungsliste geschrieben wird. Dann soll - aus Gründen des Auftragssplitting (der Auftrag besteht aus mehreren Packstücken, die unterschiedlich verarbeitet werden sollen). Dazu habe ich unter der Bedingung der Buchung dieses Packstückes je Auftrag eine CheckBox eingebaut, die zu Beginn der Planung aktiviert werden soll, wenn das Packstück gebucht wurde.
Das funktioniert sehr gut per VBA aber ist bei der Anzahl der CheckBoxen mühseelig.
Hier mal der Code:
Private Sub Haken_setzen()
' Zeile 10
If Sheets("Anlegerplanung BEL TEST").Range("AC10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 18").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 18").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AD10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 20").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 20").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AE10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 21").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 21").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AF10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 22").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 22").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AG10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 23").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 23").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AH10") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 24").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 24").ControlFormat.value = 0
End If
' Zeile 11
If Sheets("Anlegerplanung BEL TEST").Range("AC11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 11").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 11").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AD11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 12").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 12").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AE11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 13").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 13").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AF11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 14").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 14").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AG11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 15").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 15").ControlFormat.value = 0
End If
If Sheets("Anlegerplanung BEL TEST").Range("AH11") > 0 Then
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 16").ControlFormat.value = 1
Else: Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 16").ControlFormat.value = 0
End If

und so geht's weiter bis Zeile 41 ...
Kann man das mit einer IF-Then-Next oder while-do-Schleife abkürzen?
Danke für eure Bemühungen.
VG
Robert

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Algo für true-false von CheckBoxen
13.07.2018 09:31:58
CheckBoxen
Hi Robert,
ist dir in der Zeile
Sheets("Anlegerplanung BEL TEST").Shapes("Check Box 18").ControlFormat.value = 1
bei "Check Box 18" ein Tippfehler passiert und die Box heißt eigtl "Check Box 19"?
Denn mir ist aufgefallen, dass ansonsten alle Checkboxes fortlaufende Nummern haben.
Sowohl für Zeile 10 als eben auch für Zeile 11.
Wenn das mit "Check Box 18" kein Tippfehler ist, kannst du die Checkbox dann in "Check Box 19" umbenennen, oder gibt es schon eine "Check Box 19", und du müsstest viel Code anpassen?
Ciao
Thorsten
AW: Algo für true-false von CheckBoxen
13.07.2018 11:34:15
CheckBoxen
Hi Thorsten,
gut gesehen - aber es ist kein Fehler.
Hatte zwischendurch eine anderen Lösung probiert, woduch die Benamsung der CB nicht mehr chronologisch ist. Wenn CB 19 einmal gelöscht, dann heisst die nächste CB eben CB 20 ...
Dennoch Danke.
VG
robert
Anzeige
AW: Algo für true-false von CheckBoxen
13.07.2018 09:36:43
CheckBoxen
Hi
ließe sich schon machen.
erfordert aber etwas aufwand.
- gehe alle deine Checkboxen durch und ersetze die Checkboxnummer durch die Adresse der Zelle, mit der die Checkbox vernüpft ist.
"Check Box 18" wird "Check Box AC10"
"Check Box 20" wird "Check Box AD10"
dann ließen sich alle Checkboxen mit folgender Schleife bearbeiten:
dim Zelle as range
With Sheets("Anlegerplanung BEL TEST")
For each Zelle in .Range("AC10:AH41")
.Shapes("Check Box " & .Address(0, 0)).ControlFormat.value = -(Zelle.Value > 0)
next
End with
noch zur Erläuterung:
in VBA wird ein TRUE wie -1 und ein FALSE wie 0 gewertet.
Das erspart dir hier die IF-Abfrage, weil du das Vergleichsergebnis (TRUE/FALSe) in den gewünschten Wert (1 und 0) umrechenen kannst.
Gruß Daniel
Anzeige
AW: Algo für true-false von CheckBoxen
13.07.2018 11:50:19
CheckBoxen
Hi Daniel,
Danke für den Tipp.
hm, versteh ich jetzt so, dass ich die Adressierung mit der Zelle vornehmen soll, in der die Bedingung steht die geprüft wird ob WAHR/FALSCH gesetzt werden soll - richtig?
Weil die Zellverknüpfung der CheckBox, in der der Wert WAHR oder FALSCH steht, ist ja eine andere ...
Als Beispiel: CheckBox 18 ist mit der Zelle N10 verknüpft (WAHR/FALSCH) und die Bedingung, ob WAHR/FALSCH steht in Zelle AC10 ...
Hm, habe gerade mal probiert - da ich mich für die Formular-Steuerelement CB entschieden habe klappt das wohl nicht mit der Umbenennung ...
VG
Robert
Anzeige
AW: Algo für true-false von CheckBoxen
13.07.2018 11:53:47
CheckBoxen
Aaach ... man sollte RICHTIG probieren, bevor man etwas psotet ...
Umbenennung geht natürlich auch bei den Formular-CB'en, sollte man halt mit ENTER abschließen, dann klappts auch ... ;-)
Werde ich dann auch mal probieren ...
Danke nochmals.
VG
Robert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige