• 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.

gebruik van celwaarde met kleurcode voor celkleur

Status
Niet open voor verdere reacties.

mispelhage

Gebruiker
Lid geworden
27 okt 2010
Berichten
51
hoi,

ik probeer de lijst met HTML kleurcoden ( https://nl.wikipedia.org/wiki/Lijst_van_HTML-kleuren ) te gebruiken om in een spreadsheet de celkleur te definiëren.

Dus als ik een bloemensoort, bijvoorbeeld Aster, met in de kolom 'kleur' de waarde 'violetblauw', dan wil ik dat met behulp van verticaal zoeken in bovengenoemde lijst en met gebruik van een kleurfunctie, de celkleur bepaald wordt.

Iemand een idee hoe je dit doet?

mvg,
Jeroen van Mil
 
hierbij een voorbeeldbestand.

ik wil de gekleurde cellen met waarde 'x' automatisch vullen met de juiste kleur uit tabblad 'kleur'.
 

Bijlagen

  • voorbeeld kleurcode.xlsx
    22,6 KB · Weergaven: 23
Vul in B2 de gewenste kleur in zoals deze staat in kolom A van het blad Kleur.
Bijvoorbeeld Violet.
 

Bijlagen

  • Voorbeeld kleurcode.xlsm
    34,8 KB · Weergaven: 24
dank je voor je reactie.

Je oplossing geeft niet de juiste kleur. Bijvoorbeeld 'indisch rood' is meer een soort van paars...
Het is me nog niet gelukt om je macro te openen om te kijken of ik het kan corrigeren. Weet jij wat er mis gaat?
 
Dan is het kleurenpallet anders.
Gebruik deze:
 

Bijlagen

  • Voorbeeld kleurcode.xlsm
    34,7 KB · Weergaven: 26
of zoiets.
 

Bijlagen

  • voorbeeld kleurcode.xlsm
    40,8 KB · Weergaven: 22

Ja, dat is een heel eind wat ik bedoel. De kleur in de 'x' cellen wordt trouwens niet ge update als de nederlandse kleurnaam wordt gewijzigd, dat gebeurt pas wanneer je opnieuw 'x' invoert.

Kunnen jullie trouwens de code van de macro hier weergeven?
Het lukt me niet om deze in mijn macroview van LibreOffice te bewerken...
 
de code staat achter het blad.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c2:n20]) Is Nothing Then
If Target.Count = 1 Then
If Target.Value = "x" Then
If Cells(Target.Row, 2) <> "" Then
 With Sheets("kleur")
 Set kleur = .[a2:a143].Find(Cells(Target.Row, 2).Value)
  If Not kleur Is Nothing Then
    Target.Interior.Color = kleur.Offset(, 2).Interior.Color
Else
    MsgBox "De Nederlandstalige naam van de kleur staat niet in de lijst"
    End If
End With
End If
Else
Target.Interior.Pattern = xlNone
End If
Else
Target.Interior.Pattern = xlNone
End If
Else
Target.Interior.Pattern = xlNone
End If
End Sub
 
Okee, ik ben er nu mee aan het werken. Ik probeer de macro nu in te bouwen in mijn werk. Hierin gaat het om de werkbladen 'Overzicht' en 'Kleur'.

Twee vragen:
  • Hier gebeurt hetzelfde als bij edmoor; het kleurenpallet is anders. Probeer de waarde geel maar eens... Hoe kan ik dit corrigeren naar het juiste kleurenpallet (ik neem aan een verwijzing naar een andere kolom in sheet 'Kleur')?
  • Ik krijg onderstaande macro niet juist geprogrammeerd, ik krijg de foutmelding "BASIC-runtime-fout. Het argument is niet optioneel" op regelnummer 2. De kleur staat nu in kolom F, waarna in kolom G t/m R de maanden komen.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [g2:r2000]) Is Nothing Then
If Target.Count = 1 Then
If Target.Value = "x" Then
If Cells(Target.Row, 2) <> "" Then
 With Sheets("Kleur")
 Set Kleur = .[a2:a143].Find(Cells(Target.Row, 2).Value)
  If Not Kleur Is Nothing Then
    Target.Interior.Color = Kleur.Offset(, 2).Interior.Color
Else
    MsgBox "De Nederlandstalige naam van de kleur staat niet in de lijst"
    End If
End With
End If
Else
Target.Interior.Pattern = xlNone
End If
Else
Target.Interior.Pattern = xlNone
End If
Else
Target.Interior.Pattern = xlNone
End If
End Sub
 
Laatst bewerkt:
Geel doet het in mijn laatste voorbeeld prima.
Maar begrijp ik goed dat je per maand een kleur wilt kunnen selecteren?
 
ik heb geen ervaring met LibreOffice misschien kent dat het begrip target niet, probeer eens met target te vervangen door selection.
of verander [g2:g2000] naar range("g2:g2000")
en voeg het rode gedeelte toe in volgende regel.(vergeet de komma niet)
Set Kleur = .[a2:a143].Find(Cells(Target.Row, 2).Value, lookat:=xlwhole)
 
Laatst bewerkt:
De kleuren zijn mede gemaakt door gebruik van Pattern en PatternColor.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, cl As Range
If Not Intersect(Target, Range("b2:n1000")) Is Nothing And Target.Count = 1 Then
    With Cells(Target.Row, 2).Resize(, 13).Interior
      .Color = xlNone
      .Pattern = xlNone
      .PatternColor = xlNone
    End With


      Set c = Sheets("Kleur").Columns(1).Find(Cells(Target.Row, 2), , , xlWhole)
        If Not c Is Nothing And Cells(Target.Row, 2) <> "" Then
            For Each cl In Cells(Target.Row, 2).Resize(, 13)
              If LCase(cl) = "x" Or cl = cells(Target.row,2) Then
                 cl.Interior.Pattern = c.Offset(, 2).Interior.Pattern
                 cl.Interior.PatternColor = c.Offset(, 2).Interior.PatternColor
                 cl.Interior.Color = c.Offset(, 2).Interior.Color
            End If
          Next cl
        End If
 End If
End Sub
 
Laatst bewerkt:
Jongens, dank jullie wel voor alle feedback. De voorbeeldbestandjes die ik terug krijg werken goed totdat ik ze opsla en bewerk.
Ik denk dat het aan OpenOffice ligt. Ik heb ook geprobeerd nog een Java runtime environment te installeren om macro's wel te kunnen uitvoeren. Zonder succes tot nu toe.
Ik denk dat ik het maar handmatig ga doen
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan