Clever-Excel-Forum

Normale Version: Checkbox zeilenabhänig vervielfältigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten abend zusammen,

ich habe ein kleines Problem mit meiner Exceltabelle, ich habe eine Provisionstabelle erstellt mit einer Checkbox wenn der Vertrag aktualisiert wurde und die Chekbox angeklickt wurde solll die jeweilige Zeile von Y X farblich makiert werden und eine Zeile neben der Checkbox eine "1" einfügen, dies habe ich auch hinbekommen.

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("A8:I8").Interior.ColorIndex = 19 '19 = Farbton
Range("K8") = "1"
Else
Range("A8:I8").Interior.ColorIndex = xlNone 'keine Hintergrund-Farbe
Range("K8") = ""
End If
End Sub

jedoch habe ich ca. 200 Zeilen und möchte nicht 200 Checkboxen einzeln einfügen und einzeln programmieren, gibt es eine Möglichkeit eine Checkbox einzufügen meinetwegen auch 200 mal aber dass ich dies nicht 200x programmieren muss, sondern das Excel weiß in welcher Zeile die Checkbox ist und das er die Formel dann auch für diese Zeile so übernimmt in der Sie steht ?

vVelen Dank im voraus

Anhang Screenshot
Hallo,

Du nutzt sicher die ActiveX Checkboxen. Diese haben die LncedCell Eigenschaft.Dort trägst Du die Zelle ein in die Eigenschaft der Checkbox rein geschrieben wird.
Dann programmierst Du nichts, sondern nutzt die Bedingte Formatierung für den zu färbenden Bereich.

Angenommen die Chekboxen liegen in den Zellen von A1 bis A200 und die LinCedCell ist die darunter liegende Zelle.
Dann den zu Färbenden Bereich markieren z.B B1:B200 und in der Bedingten Formatierung für die Färbung bei Wahr folgende Formel eingeben.

=A1=WAHR
Hallo,

anbei ein Code, der mit xl2003 getestet ist. Die Anzahl und die Spalte müssen angepasst werden:


Code:
'im Tabellen-Kopf


Sub Kontrollkästchen_Klicken()
Dim shp As Shape
Dim Zelle As Range
Set shp = ActiveSheet.Shapes(Application.Caller)
Debug.Print shp.Name, shp.ControlFormat.Value, shp.TopLeftCell.Address
End Sub

'im allgemeinen Modul

Sub T2()
Debug.Print
With ActiveSheet.CheckBoxes
For i = 10 To 15
   .Add(Cells(i, "a").Left, Cells(i, "a").Top, 0, 0).Select
   Selection.Caption = ""
   Selection.OnAction = "Kontrollkästchen_Klicken" 'im Kopf des sheets
Next i
End With
End Sub


mfg
Vielen Dank für die schnelllen Antworten.

So ganz funktioniert das noch nicht, liegt daran, dass ich ein Anfänger bin :P

könntest du mir viellleicht deine Testtabelle schicken bitte ?:)
Hallo,

versuche mal diese Datei:

Die Farbe "ColorIndex = 19" ist in xl2003 unsichbar, event. durch "6:gelb" ersetzen.

mfg
Moin auch von mir!
Mal ein ganz anderer Ansatz:
http://www.clever-excel-forum.de/thread-3350.html

Gruß Ralf
nochmals vielen Dank es klappt super, nur wenn ich den Haken wieder rausnehmen resetet es leider nicht wieder zurück auf weiß.
welchen Befehl muss ich bei dem Else einfügen und das gelbe wieder rückgängig zu machen.

Ich benötige das selbe mit den Checkboxen nocheinmal Für Zeile L8:L200, hier soll jedoch nur der Wert 1 ohne farbe in Zeile M eingefügt werden. geht das auch oder kann man die funktion mit den Formularsteuerelemten nur einer Geschichte zuordnen ?
(31.12.2016, 18:40)hbboy15 schrieb: [ -> ]nochmals vielen Dank es klappt super, nur wenn ich den Haken wieder rausnehmen resetet es leider nicht wieder zurück auf weiß.
welchen Befehl muss ich bei dem Else einfügen und das gelbe wieder rückgängig zu machen.

Ich benötige das selbe mit den Checkboxen nocheinmal Für Zeile L8:L200, hier soll jedoch nur der Wert 1 ohne farbe in Zeile M eingefügt werden. geht das auch oder kann man die funktion mit den Formularsteuerelemten nur einer Geschichte zuordnen ?

Das mit der 2. Checkbox nur mit den wert ohne farben hab ich eben noch hinbekommen. :)
nur das erste bräuchte ich noch
Hallöchen,

was ist denn das erste? Das mit dem Reset auf weiß? Zeig mal Deinen Code.
Im Prinzip hast Du beim Click zwei Zustände, True und False. Bei dem einen setzt Du die Farbe, und beim anderen gehst Du zurück auf weiß oder keine Farbe (xlnone oder -4000 und ein bisschen Wink