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

Lijst met RGB-nummers van kleuren in Excel

Status
Niet open voor verdere reacties.
Ik heb nu de hex-waarde en wil dan een andere cel in die kleur krijgen. Dus ik dacht:
=ColorCellsByHex(B3) Helaas werkt deze niet. Wat is er fout?

Code:
'VBA function to color cells in selected range based on the hex
'color number entered in each cell. For example, #FF69B4

Sub ColorCellsByHex()
    Dim r
    If TypeName(Selection) <> "Range" Then Exit Sub
    For Each r In Selection
        r.Interior.Color = Abs(("&H" & Mid(r, 6, 2) & Mid(r, 4, 2) & Mid(r, 2, 2)))
    Next
End Sub
 
Laatst bewerkt:
Het is geen Function maar een Sub.
Die kan je niet gebruiken met =ColorCellsByHex
 
Hoe krijg ik dat wel voor elkaar?
edit:
Ga morgen verder. Het is al laat.
 
Laatst bewerkt:
@Hsv

I got it: Get.Cell(63;A2), gedefinieerd als 'named formula'.
 
Laatst bewerkt:
Code:
Sub ColorCellsByHexInCells()
  Dim rSelection As Range, rCell As Range

  If TypeName(Selection) = "Range" Then
  Set rSelection = Selection
    For Each rCell In rSelection
      rCell.Interior.Color = WorksheetFunction.Hex2Dec(Mid$(rCell.Text, 2))
    Next
  End If
End Sub

Ik heb nu deze maar dat is meer een macro die je moet uitvoeren en de hex moet in de cel staan en dan zie je dus ook de letters van die hex en dan moet je die in dezelfde kleur maken dan krijg je alleen de kleur. Zo is het niet de bedoeling. Als A1 de hex bevat moet cel B1 automatisch die kleur aannemen.

@Edmoor
Waarom staat bij de onderste kleurenrij accolades (sheet1) in de formule? Die heb ik niet gebruikt. Kun jij dat even nakijken of de uitkomsten kloppen. Sheet2 kom ik niet uit.

Bekijk bijlage Excel Kleur - Kleuren met RGB-waarde en hex.xlsm
 
Laatst bewerkt:
Goed te zien dat het ook gecompliceerd kan.

Code:
Sub M_snb()
  Cells(1, 4).Interior.Color = Application.Hex2Dec("FFAAFF")
End Sub
als in cel D1 bijv. "FFAAFF" staat:
Code:
Sub M_snb()
  Cells(1, 4).Interior.Color = Application.Hex2Dec(cells(1,4))
End Sub
of
Code:
Sub M_snb()
  Cells(1, 4).Interior.Color = [Hex2Dec(D1)]
End Sub
of
Code:
Sub M_snb()
  Cells(1, 4).Interior.Color = Evaluate("Hex2Dec(D1)")
End Sub
 
Laatst bewerkt:
Ik zie geen accolades?
Welke regel op welk werkblad bedoel je precies?
 
In mijn schema heb ik niets gedaan {} Matrix? en bij jouw schema (onderste) in de formulebalk zie je {}zie formulebalk.jpg
 
Laatst bewerkt:
Normaal gesproken gaat het dan om Array formules.
Bij mij zie ik ze echter niet.
Heeft dan denk ik met je oude Office versie te maken.
 
Goed te zien dat het ook gecompliceerd kan.
Als het zou werken zou nog mooier zijn. Niets werkt van die vier opties. De kleur moet in kolom H staan dus niet in die cel waar de hex code staat. Ik heb een voorbeeldbestand bijgevoegd. Het is hex, R, G, B Kleurnaam en kleur van Excel (opvulkleur). Ik moet in kolom B(3) de Hex in kunnen geven en in Kolom H(3) moet de kleur verschijnen. De kleur mag ook komen van de RGB codes.
 
Laatst bewerkt:
Alles werkt als je kunt lezen en het snapt.
 
Kan ook zijn dat jij het gevraagde niet snapt. Ik wil geen kleur in de cel waar de hex-code in staat.
Overigens is dit een forum voor mensen die niet alles snappen.
 
ColorIndex gaat over het kleurenpalet van Excel 2003. Vanaf Excel 2007 is het de bedoeling dat je de thema kleuren gebruikt, dat "ziet" er in VBA totaal anders uit.

Als je de Color eigenschap gebruikt, dan geef je de cel een kleur die niet "in" een thema valt. Cellen die op die manier van kleur zijn veranderd veranderen niet langer van (thema)kleur als je het thema wijzigt.
Neem maar eens een macro op waarbij je 1 van de standaard kleuren instelt, dan zie je wat ik bedoel:
Code:
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = 0.599993896298105
        .PatternTintAndShade = 0
    End With
 
Je kunt de thema kleuren als volgt in wat cellen weergeven (zorg dat je dit uitvoert op een leeg werkblad):
Code:
Sub ListThemeColors()
    Dim lCount As Long
    Dim lTintCt As Long
    Dim vTints As Variant
    Dim oCell As Range
    vTints = Array(0.8, 0.6, 0.4, -0.25, -0.5)
    Set oCell = ActiveCell
    'Er zijn 12 themakleuren en 5 tinten
    For lCount = 1 To 12
        For lTintCt = LBound(vTints) To UBound(vTints)
            With oCell.Offset(lCount, lTintCt).Interior
                .ThemeColor = lCount
                .TintAndShade = vTints(lTintCt)
            End With
        Next
    Next
End Sub
 
Laatst bewerkt:
Dat loopt mis op een ontbrekende klasse:

' Dim cThemecolor As clsThemeClr

Ik zou gebruik maken van de thema-eigenschappen van het werkboek.
De tint & shade kan variëren van -1 tot +1

Code:
Sub M_snb()
    With ThisWorkbook.Theme
       For j = 1 To .ThemeColorScheme.Count
           ActiveCell.Offset(j).Interior.Color = .ThemeColorScheme(j).RGB
       Next
    End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan