schaut Euch bitte mal das angehängte Bild an. Ich hab ein Formular mit 9 chkBoxen. Nach Auswahl der entsprechenden chkBoxen (z.B. 3) und des Klick's auf den OK-Button, sollen in Excel 3 Rahmen untereinander gezeichnet Worksheets("Sollwert).Range(Rahmen1).BorderAround ColorIndex:=1, Weight:=xlMedium Worksheets("Sollwert).Range(Rahmen2).BorderAround ColorIndex:=1, Weight:=xlMedium Worksheets("Sollwert).Range(Rahmen3).BorderAround ColorIndex:=1, Weight:=xlMedium das ist nicht das Problem.
Ich möchte die jeweilige chkBoxCaption in den dazugehörigen Rahmen, so wie auf dem Bild rechts dargestellt. Könnt Ihr mir helfen?
02.08.2019, 06:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2019, 06:40 von schauan.)
Hallöchen,
Dein Rahmenbereich scheint mehrzeilig zu sein, da kannst Du mit Cells … eine Zelle in diesem Bereich ansprechen. Worksheets("Sollwert).Range(Rahmen1).Cells(2, 1).Value = …
Wäre er nur einzeilig, dann z.B. mit Offset Worksheets("Sollwert).Range(Rahmen1).Offset(1, 0).Value = …
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Wie bekomme ich jeweiligen chk.Caption in die angewählten Rahmen?
- wenn der User chkG90 auswählt, dann chk.Caption in Rahmen 1 - wenn der User chkG90 und chkG180 auswählt, dann chkG90.Caption in Rahmen 1 und chkG180.Caption in Rahmen 2 - wenn der User chkG90 und chkG180 und chkU210 .... in Rahmen 1 und in Rahmen 2 und in Rahmen 3 ... etc
weiter gehts, bitte das Script in der UserForm1 anschauen:
Ordnerinhalt der zip.Datei:
- Auswahl über Checkboxen.xlsm - UserForm1.frm - UserForm1.frx
ich bekomme das mit den verschiedenen Varianten ab 2 chkBoxen und 3 chkBoxen etc. nicht hin, wenn 2 und 3 dann Das wenn 3 und 4 dann Das wenn 4 und 5 dann Das wenn 1 und 3 dann Das usw.
voll ausprogrammiert könntest Du doch, genau wie bei Deinen anderen If's, auch die Checkboxenzustände abfragen und entsprechend reagieren. Hier mal als Prinzip:
If cbo1.value = true then rahmen1.cells(2,1).value = cbo1.caption else rahmen1.cells(2,1).value="" If cbo2.value = true then rahmen2.cells(2,1).value = cbo2.caption else rahmen2.cells(2,1).value=""
usw.
Das würdest Du unabhängig von der Anzahl der angeklickten cbo's ausführen. Damit ist sichergestellt, wenn Du mal eine wegklickst, dass dann auch der Eintrag im zugehörigen Bereich entfernt wird. Voraussetzung ist hierbei natürlich, dass die cbo's eine feste Beziehung zu einem bestimmten rahmen haben.
Eventuell braucht man, falls man das in einer Schleife zusammenfassen will, auch noch eine Zuordnungstabelle, wenn z.B. di cbo89 zum rahmen1 gehört und die cbo67 zum rahmen2 usw.
Wenn Du jedoch bei z.B. 5 cbo's und zwei beliebigen angeklickten immer die caption in rahmen1 und rahmen 2 haben willst, müsste man anders vorgehen. Man könnte z.B. erst mal die captions erfassen und anschliessend auf die rahmen verteilen. Dazu könnte man z.B. ein Array verwenden oder eine Collection. Da wäre ja auch der Fall interessant, wenn Du z.B. 3 cbo's anklickst, ob die in Reihenfolge des Anklickens in die rahmen sollen oder z.B. in Reihenfolge ihrer Indizees.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)