Herbers Excel-Forum - das Archiv
Checkbox soll Zellen ändern
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
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
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
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
Betrifft: Sorry, dumme Frage!! Verstanden o.t.
von: Franz W.
Geschrieben am: 14.12.2003 13:45:26