• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Code opvulkleur

Status
Niet open voor verdere reacties.

Chris15

Gebruiker
Lid geworden
23 aug 2016
Berichten
552
Is het mogelijk dat als je 2 keer klikt in een cel dat de cel opgevuld wordt met een kleur? (bijvoorbeeld lichtgroen) en als je dan weer 2 maal klikt op die cel dat de opvulkleur weer weg is? Het gaat bij mij om de cellen C6 tm C26
 
Met bijvoorbeeld dit achter het werkblad:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("C6:C26")) Is Nothing Then Exit Sub
    Target.Interior.Color = IIf(Target.Interior.Color = vbGreen, xlColorIndexNone, vbGreen)
End Sub
 
bv zo
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Intersect(Target, Range("C6,C26")) Is Nothing Then Exit Sub
  Cancel = -1
  Target.Interior.Color = IIf(Target.Interior.Color = vbWhite, vbGreen, xlNone)
End Sub
 
Dank jullie wel mannen, maar nu weet ik niet welke code ik het beste kan gebruiken.... :)
 
Er zijn altijd meerdere wegen naar Rome, dus de keuze is aan jou ;)
HSV zet Cancel nog op True, dat betekent dat de cel op dat moment niet in Edit mode wordt gezet.
 
Dat ligt eraan wat je wilt. Als je dubbelklikt in een cel zie je dat daar direct de cursor staat te knipperen ten teken dat je wat kan gaan invullen. Dat is de Edit Mode van een cel. Als je alleen de kleur wilt aanpassen en er verder niks wilt invullen kan je die Cancel op True zetten en wordt Edit Mode bij het wijzigen van de kleur niet geactiveerd. Dat kan uiteraard in zowel mijn voorbeeld als die van HSV.
 
Als ik heb geklikt moet ik direct iets invullen in die cel. Dus dan heb ik jou code nodig. (als ik het goed begrijp?)
 
Dan kan je die van mij gebruiken of bij die van HSV de Cancel = -1 weg laten.
Wat je zelf wilt dus :)
 
Oke Edmore, laatst vraag :)

Als ik een kleur van de index wil gebruiken ipv vbGreen, (1 of 2 of......) hoe vul ik dat in?
 
Je kan Excel 56 color palette gebruiken:
http://dmcritchie.mvps.org/excel/colors.htm

Wijzig dan deze regel:
Target.Interior.Color = IIf(Target.Interior.Color = vbGreen, xlColorIndexNone, vbGreen)

in dit:
Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = vbGreen, xlColorIndexNone, vbGreen)

Bij het gebruik van .Color zijn er vele malen meer kleuren beschikbaar.
 
Ik heb de kleur nodig van de standaard opvulkleuren 5e van links, weet jij die code? zie bijlage....
 
Daarvoor heb je dan .Color nodig en niet .ColorIndex.
Wat je het makkelijkt kan doen is het volgende.
Geef cel A1 de gewenste kleur en tik in het Direct venster van de VBA Editor het volgende in:
?[A1].Interior.Color

Het bijbehorende kleurnummer zal nu worden getoond onder die opdracht.
Zie voorbeeld:
CL.JPG

Druk in de VBA Editor eventueel op CTRL-G om het Direct venster te laten verschijnen.
 
Hier begrijp ik niet veel van.... (sorry)
Is dit beter dan de vorige code?
 
Je kan gewoon mijn voorbeeld uit #2 gebruiken. In plaats van vbGreen gebruik je dan het nummer dat je zoals uitgelegd naar voren kan halen. Volgens jouw opgave zal dat kleurnummer 5296274 zijn.

Dus:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("C6:C26")) Is Nothing Then Exit Sub
    Target.Interior.Color = IIf(Target.Interior.Color = 5296274, xlColorIndexNone, 5296274)
End Sub
 
Laatst bewerkt:
Edmoor,

Ik heb onderstaande code nu geplaatst, maar het geeft een fout aan...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C6:C26")) Is Nothing Then Exit Sub
Target.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = 5296274, xlColorIndexNone, 5296274)
End Sub
 
Zonder dat je erbij verteld welke foutmelding je krijgt kan ik er niks mee.
Daarnaast is het niet wat ik in #15 liet zien.
 
Je heb gelijk! die code werkt prima!

Dank jullie (weer) voor de tijd! :)
 
Edmoor, ik wil toch [Color 35] gebruiken, kan jij die in de code zetten voor mij?
 
Dat wil ik best voor je doen maar volgens mij zou zo langzamerhand toch duidelijk moeten zijn wat daarvoor moet gebeuren ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan