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

voorwaardelijke opmaak

Status
Niet open voor verdere reacties.

tobo100

Gebruiker
Lid geworden
14 okt 2013
Berichten
156
hallo allemaal
mijn vraag betreft voorwaardelijke opmaak
ik heb een bestand waar verschillende dubbele waarden vaker voor komen
weet iemand of het mogelijk is om bij gelijke waarden verschillende kleuren te gebruiken
zo dat het geen grote groene massa word zo als in het voorbeeld bestand
de bedoeling is dat het geheel wat overzichtelijker gaat worden

Bekijk bijlage voorwaardelijke opmaak.xlsx
 
Mijn suggestie is te werken met 2 regels voor voorwaardelijke opmaak: kleurenschalen en dubbele waarden.

Dan de dubbele waarden zo definiëren, dat deze er uit springen (ik heb een arcering toegepast plus een vet en cursief lettertype).

Bekijk bijlage voorwaardelijke opmaak MB.xlsx

Een alternatieve opmaak voor de dubbele waarden (i.p.v. de eerdere regels): aangepast getalformaat, bijvoorbeeld 00000000.
 
Laatst bewerkt:
Bekijk bijlage voorwaardelijke opmaak.xlsb

ik had snel even een voorbeeld bestand gemaakt en gemak halve alleen cijfers geplaatst
in de cellen staan letters gecombineerd met cijfers
ik hoop dat je er nog n keer naar kunt kijken
volgens mij lukt dit alleen met vba en dat heeft ook de voorkeur...
 
Bekijk bijlage voorwaardelijke opmaak MB2.xlsx

Toch nog een poging zonder VBA. De kleurtjes komen nu in kolom C (naast kolom A als je kolom B verbergt).

In kolom B heb ik een code berekend, gebaseerd op de ASCII-codes van de tekens in kolom A.
In kolom C de rangorde van de getallen in kolom B (0 indien geen dubbele).
2 regels voor voorwaardelijk opmaak in kolom C:
- witte achtergrond indien 0 (dus niet dubbel) en nummerformaat ;;; (niet zichtbaar) (stoppen indien waar)
- kleurenschaal

Formule in B1 en gekopieerd naar beneden (het is een matrixformule, bevestigd met Ctrl+Shft+Enter, herkenbaar aan de accolades {} die Excel er dan automatisch omheen zet):
Code:
=SOM(10^(3*RIJ(INDIRECT("1:"&LENGTE(A1))))*CODE(DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)));1)))
Dit kunnen hele grote getallen worden, maar dat maakt verder niet uit.

Formule in C1 en gekopieerd naar beneden (edit: aangepast van ....;0) naar ;"")) :
Code:
=ALS(AANTAL.ALS(A:A;A1)-1;RANG(B1;B:B);"")

Ik heb voor de dubbele waarden in kolom C het nummerformaat op standaard gehouden, zodat je ook aan het nummer kunt zien welke dubbele bij elkaar horen.
Desgewenst kun je de nummers verbergen met aangepast nummerformaat ;;;

Het is de bedoeling om kolom B te verbergen, maar ik heb hem maar even zichtbaar gehouden voor een beter begrip van de oplossing.
 
Laatst bewerkt:
dankjewel marcel het betreffende werksheet word automatisch gegenereerd uit verschillende andere werksheets door middel van macro
als het geupdate word word het sheet gedelete en opnieuw gegenereerd hulp kolommen zijn daar door ook verdwenen
vandaar dat ik graag een macro wou
maar bedankt voor je in breng word gewaardeerd :thumb:
 
Graag gedaan, wellicht inspireert het nog de VBA-ers op het forum.
Een eventuele VBA-oplossing is voor mij nog iets te hoog gegrepen.

Mocht er verder niets bruikbaars uitkomen, dan kun je natuurlijk ook de bestaande macro's aanpassen die de hulpkolommen aan de nieuwe sheet toevoegen....
Als ik een nieuw Excelbestand aanmaak met daarin de waarden van kolom A en vervolgens kopieer ik de hulpkolommen B en C naar het nieuwe bestand, dan werkt het ook gewoon.

Maar goed, eerst maar even de eventuele VBA-oplossingen afwachten.
 
leuke code gevonden
ik zou alleen graag zien dat er maar 2 kleuren gebruikt gaan worden ipv colour = colour +1
dus gewoon om en om rood/groen/rood/groen etc dus bijvoorbeeld colour 3 en 4 kan iemand me daar me helpen ?

Code:
Sub Find_Duplicate_Entry()
    Dim Cell As Variant
    Dim Rng As Range
    Dim Colour As Long
    Set Rng = Range("B1:B" & Range("B" & Rows.Count).End(xlUp).Row)
    Rng.Interior.ColorIndex = xlNone
    Colour = 3
    For Each Cell In Rng
        If Application.WorksheetFunction.CountIf(Rng, Cell) > 1 Then
            If WorksheetFunction.CountIf(Range(Rng.Cells(1, 1), Cell), Cell) = 1 Then
                Cell.Interior.ColorIndex = Colour
                Colour = Colour + 1
            Else
                Cell.Interior.ColorIndex = Rng.Cells(WorksheetFunction.Match(Cell.Value, Rng, False), 1).Interior.ColorIndex
            End If
            End If
            Next
            End Sub
 
wijzig Colour = Colour + 1
in
Code:
 if Colour=3 then
     colour=43
else
     colour=3
end if
het kan korter maar dit is wel zo duidelijk
 
Super sylvester-180ponte
na uren klootviolen de vraag hier maar neer gezet
en achter af is het antwoord zo simpel maar goed dat is bij alles zo wat je weet
iedergeval hartelijk dank :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan