Herbers Excel-Forum - das Archiv

Checkbox soll Zellen ändern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Checkbox soll Zellen ändern
von: Stefan Glander
Geschrieben am: 14.12.2003 03:32:55
Hallo Excelanier,
noch eine Frage. Ich habe in einem Tabellenblatt 20 Checkboxen die in den Zellen C1:C20 stehen.
Ich möchte gerne das wenn ich Checkbox 1 anklicke das sich die Zellen D1:F1 sowohl in der Musterfarbe ändern als auch die Rahmenfarbe sich ändert.
Bei ausklicken soll sich die Musterfarbe und Die Rahmenfarbe ebenfall ändern.
Sprich angeklickt Musterfarbe rot nicht angeklickt Musterfarbe gelb.
Über ein 2 Makros das ich mit der Checkbox anspreche wäre das für mich kein Problem, müsste dann aber 40 Makros schreiben.
Gibt es auch die möglichkeit das eben genau die 3 Zellen neben der Checkbox die ich aktiviere bzw deaktiviere sich ändern?
Im Archiv könnte ich dazu nichts finden. Weiß jemand Rat?
Gruss
Stefan Glander

Bild

Betrifft: AW: Checkbox soll Zellen ändern
von: Ramses
Geschrieben am: 14.12.2003 08:38:10
Hallo Stefan

dieser Code gehört in jede Checkbox


Option Explicit

Private Sub CheckBox1_Click()
If CheckBox1 Then
    '1 steht für den Namen der Checkbox
    'bzw. kennzeichnet ja auch die Zeile
    Colour_Cells (1)
Else
    UnColour_Cells (1)
End If
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16




Dieser Code gehört in ein Modul:



Option Explicit

Sub Colour_Cells(myR As Integer)
' myR für die Zeile wird von der Checkbox übergeben
' 4 und 8 kennzeichnen die Spalten die du markieren willst
With Range(Cells(myR, 4), Cells(myR, 8))
    .Interior.ColorIndex = 3   '3 = Rot
    'Die Rahmen kannst du ja anpassen
    With .Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
End With
End Sub

Sub UnColour_Cells(myR As Integer)
With Range(Cells(myR, 4), Cells(myR, 8))
    .Interior.ColorIndex = 6  ' 6 = Gelb
    With .Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With .Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End With
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16





Gruss Rainer
Bild

Betrifft: myR wird übergeben: wo und wie?
von: Franz W.
Geschrieben am: 14.12.2003 13:10:20
Hallo Rainer,

tolle Lösung, hab's ausprobiert. Stell mich aber mal wieder an und bitte Dich um Nachhilfe: wo und wie wird myR übergeben??


Vielen Dank schon mal und Grüße
Franz
Bild

Betrifft: Sorry, dumme Frage!! Verstanden o.t.
von: Franz W.
Geschrieben am: 14.12.2003 13:45:26
Bild
Excel-Beispiele zum Thema " Checkbox soll Zellen ändern"
Zustand von Tabellenblatt-Checkboxes ermitteln Summenbildung bei Checkboxaktivierung
Alle CheckBoxes einer UserForm ansprechen Beim Aktivieren einer CheckBox Häkchen in Zelle eintragen
Passwort vergeben und bei CheckBox-Aktivität abfragen CheckBoxes in UserForms in eine Schleife einbinden
Anzahl von CheckBoxes in einer UserForm ermitteln Werte von CheckBoxes in einer UserForm abfragen
ComboBox in Abhängigkeit von einer CheckBox anzeigen CheckBoxes in einer Tabelle über Zelleingaben steuern