Cel in Excel kleuren met muiskliks

  • Onderwerp starter Onderwerp starter SPP
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

SPP

Gebruiker
Lid geworden
11 mrt 2010
Berichten
7
Ik kan dit helaas niet zelf programeren, maar ik wil graag het volgende, in Excel 2007

Het gaat om een beoordelingsformulier. Ik wil graag de achtergrondkleur van een cel kunnen veranderen door een aantal muiskliks. De cel wordt dan groen. Nog een klik, de cel wordt oranje. Nog een klik, de cel wordt rood. Laatste klik, de cel is weer doorzichtig. Daarna kan je dit weer herhalen, voor het geval dat je je vergist.

Voorwaardelijke opmaak werkt hier niet, er zijn namelijk geen voorwaarden in de cellen aanwezig. En ja, excel wordt gebruikt op een manier waar het niet voor bedoeld is.

Is er iemand hier die me kan helpen? Thx!
 
Voor kolom C, met dubbelklik

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 3 Then
    With Target.Interior
       .ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
    End With
  End If
End Sub
 
Fantastisch

Voor kolom C, met dubbelklik

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 3 Then
    With Target.Interior
       .ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
    End With
  End If
End Sub

Dit is wat ik zoek. Bedankt!
Een tip/hint hoe ik dit op meerdere cellen of meerdere kolommen toepas is welkom ( heb veel geprobeerd, maar krijg alleen foutmeldingen)
(C5:e9) werkt niet, als ik weet waar ik de info kan vinden, of hoe ik de juiste vraag kan stellen bij ons aller vriend Google dan kom ik weer verder.
 
SPP,

Probeer deze code eens.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With Target.Interior
    .ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
  End With
End Sub
 
Laatst bewerkt:
SPP,

Probeer deze code eens.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    
    Target.Interior.ColorIndex = 8
End Sub

Hoi Wim,

Dit is niet wat ik bedoel, de cel moet na klikken een drietal kleuren krijgen, vierde klik is weer een witte achtergrond. Die kleur moet ook blijven. Het is een soort markeerstift gebruik.
dank voor het meedenken.
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   With Target.Cells(1)
       target.ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
    End With
End Sub
 
Ik heb mij vorig bericht aangepast.

Ja, dit werkt :-) Roept weer een vraag op, niet alle cellen moeten deze optie hebben. Als ik cellen ga beveiligen dan krijg ik vastlopers en foutmeldingen. Kan ik het bereik in VBA defenieren?
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   With Target.Cells(1)
       target.ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
    End With
End Sub

Ik krijg een foutmelding ( zie bijlage)
 

Bijlagen

  • fout.JPG
    fout.JPG
    28 KB · Weergaven: 210
En zo?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 For Each cl In [B2:D8]
  With Target.Interior
    .ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
  End With
 Next
End Sub
 
En zo?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 For Each cl In [B2:D8]
  With Target.Interior
    .ColorIndex = Switch(.ColorIndex = -4142, 10, .ColorIndex = 0, 10, .ColorIndex = 10, 46, .ColorIndex = 46, 3, .ColorIndex = 3, 0)
  End With
 Next
End Sub

Merk geen verschil met de vorige versie, kan overal de cellen kleuren...
 
Als je het blad beveiligd met uit zondering van
Code:
Range("B2:D8")
dan zal je daar geen probleem hebben, denk ik.
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   for each cl in target
      if cl.Locked=false then  cl.ColorIndex = Switch(cl.ColorIndex = -4142, 10, cl.ColorIndex = 0, 10, cl.ColorIndex = 10, 46, cl.ColorIndex = 46, 3, cl.ColorIndex = 3, 0)
    Next
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan