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

Gekleurde cellen (VO) tellen

Status
Niet open voor verdere reacties.
De code staat daar goed, maar helaas kan ik het niet testen in Excel 2007.

Misschien dat @EvR of iemand anders met Excel 2010 of hoger langs komt en reageren wil.
 
DisplayFormat werkt net zoals Specialcells niet in een UDF, wel in een event of macro
 
E v R,

Bedankt voor je aanvulling.
Ik heb intussen getracht de code van HSV in een Sub te zetten maar krijg daarbij steeds foutmeldingen in de code.
Niets ten nadele van iemand maar ik heb het gevoel dat ik terug ben bij mijn posting van 10:52 uur.
E v R,

Ik heb de code aangepast en nu zie ik het resultaat in Cell H1015 en H1016.
Sub tst()
Code:
Dim cel As Range, i As Long, j As Long
For Each cel In Sheets("Opl. Status").Range("H13:H1013")
If cel.DisplayFormat.Interior.Color = 16764057 Then i = i + 1
If cel.DisplayFormat.Interior.Color = 10079487 Then j = j + 1
Next
Range("H1015") = i
Range("H1016") = j
End Sub
Hoe zorg ik ervoor dat dit op regel 1015 en 1016 zichtbaar wordt voor alle kolommen?

Rob
Hoe zorg ik ervoor dat dit op regel 1015 en 1016 zichtbaar wordt voor alle kolommen?

Rob
 
Gewoon rustig blijven, het is vrijwillig wat wij doen.


Probeer dit eens.
Nogmaals, ik kan het niet testen.
Code:
Sub tst()
Dim sv, i As Long, j As Long, cl As Range, blauw As Long, oranje As Long
sv = Sheets("Opl. status").Range("H13:BS1013")
   For j = 1 To UBound(sv, 2)
     For i = 1 To UBound(sv)
        If Cells(i, j).DisplayFormat.Interior.Color = 16764057 Then blauw = blauw + 1
        If Cells(i, j).DisplayFormat.Interior.Color = 10079487 Then oranje = oranje + 1
     Next i
       Cells(1015, j) = blauw
       Cells(1016, j) = oranje
    Next j
End Sub
 
HSV,

Sorry, mijn opmerking met betrekking tot "Niets ten nadele van iemand" is niet op jullie als forumleden van betrekking.
Jullie doen fantastisch werk in het ondersteunen en bieden van oplossingen.
Het is meer de frustratie over mijn eigen onvermogen dit probleem op te lossen.
Maar terug naar de code de jij gaf.

De code telt inderdaad de kleuren blauw en oranje in de diverse kolommen. (echter ook in kolom A:G) wat niet nodig is. Het tellen zou moeten starten in cel H1015/H1016.
Ook kloppen de aantallen niet.
Ik heb op de eerste 3 kolommen even handmatig geteld en het resultaat staat in regel 1018 eb 1019.
Kennelijk wordt in de berekening de waarde van de vorige kolom meegeteld in de eerstvolgende kolom.
maw de waarde in I1015= H1015+I1015, J1015=I1015+J1015 en dat zou alleen de eigen kolom moeten zijn.
Ook is de waarde in H1015 en H1016 een (1) te hoog omdat de gekleurde cellen C4/C5 worden meegeteld.
Ook stopt het tellen van de cellen in kolom BM
In elk geval ben ik weer een stukje dichterbij.
Ik heb nog even een screenshot van de code en het aangepaste bestand toegevoegd.

Rob
Bekijk bijlage Kopie Scholingstabel.xlsm

2018-08-20 (2).png
 
Laatst bewerkt:
foutje:
Code:
Sub tst()
Dim sv, i As Long, j As Long, cl As Range, blauw As Long, oranje As Long
sv = Sheets("Opl. status").Range("H13:BS1013")
   For j = 1 To UBound(sv, 2)
     For i = 1 To UBound(sv)
        If Cells(i, j).DisplayFormat.Interior.Color = 16764057 Then blauw = blauw + 1
        If Cells(i, j).DisplayFormat.Interior.Color = 10079487 Then oranje = oranje + 1
     Next i
       Cells(1015, j[COLOR="#FF0000"]+7[/COLOR]) = blauw
       Cells(1016, j[COLOR="#FF0000"]+7[/COLOR]) = oranje
       [COLOR=#ff0000]blauw = 0
       oranje = 0[/COLOR]
    Next j
End Sub
 
Laatst bewerkt:
HSV,

Bedankt !!!
We zijn er bijna.
Het enigste dat nog niet klopt is dat het tellen nu start in kolom O (zie screenshot)
maw de gegevens van O1015/O1016 horen bij H1015/H1016 enz

2018-08-20 (3).png

Rob
 
Laatst bewerkt:
Ik zie toch getallen staan in H1015, I1015, J1015

J = de eerste ronde 1
J + 7 = 8
cells(1015,8) = H1015 = getal

tweede ronde: j wordt 2
J + 7 = 9
cells(1015,9) = I1015 = getal
 
Harry,

Dat klopt maar in kolom H t/m M staan de resultaten uit kolom A t/m G

Rob
 
Allen,

Probleem is opgelost.
Code van Harry ietsje aangepast.
Code:
Private Sub Worksheet_Activate()
Dim sv, i As Long, j As Long, cl As Range, blauw As Long, oranje As Long
sv = Sheets("Opl. status").Range("H13:BS1013")
   For j = 1 To UBound(sv, 2)
     For i = 1 To UBound(sv)
        If Cells(i, j [COLOR="#FF0000"]+ 7[/COLOR]).DisplayFormat.Interior.Color = 16764057 Then blauw = blauw + 1
        If Cells(i, j [COLOR="#FF0000"]+ 7[/COLOR]).DisplayFormat.Interior.Color = 10079487 Then oranje = oranje + 1
     Next i
       Cells(1015, j + 7) = blauw
       Cells(1016, j + 7) = oranje
       blauw = 0
       oranje = 0
    Next j
End Sub

Allemaal heel erg bedankt voor de hulp. :thumb:
Zal gelijk even een donatie doen :d

Rob
 
Allen,

Probleem is opgelost.
Code van Harry ietsje aangepast.


Zal gelijk even een donatie doen :d

Rob

Mooi dat je het zelf hebt opgelost door de + 7 daar ook toe te voegen.
Ik heb geen testmateriaal voor mijn Excel 2007 probleem zodat ik code schrijf maar niet kan testen.

Die donatie zullen ze zeker op prijs stellen. :thumb:
 
Alleen klopt de uitkomst niet. De array begint in kolom 8 en in rij 13. Jij begint te tellen vanaf rij 1.

Code:
Private Sub Worksheet_Activate()
Dim sv, i As Long, j As Long, cl As Range, blauw As Long, oranje As Long
sv = Sheets("Opl. status").Range("H13:BS1013")
   For j = 8 To UBound(sv, 2) + 8
     For i = 13 To UBound(sv) + 13
        If Cells(i, j).DisplayFormat.Interior.Color = 16764057 Then blauw = blauw + 1
        If Cells(i, j).DisplayFormat.Interior.Color = 10079487 Then oranje = oranje + 1
     Next i
       Cells(1015, j) = blauw
       Cells(1016, j) = oranje
       blauw = 0
       oranje = 0
    Next j
End Sub
 
VenA,

Bedankt voor de aanvulling.
Je hebt helemaal gelijk.
Ik heb de code van jou er in gezet.
Werk perfect :thumb:

Met vriendelijke groet,

Rob
 
Laatst bewerkt:
Kan ook zonder al die ++++
Code:
Sub tst()
Dim sv, i As Long, j As Long, blauw As Long, oranje As Long
sv = Sheets("Opl. status").Range("A1:BS1013")
   For j = 8 To UBound(sv, 2)
     For i = 13 To UBound(sv)
        If Cells(i, j).DisplayFormat.Interior.Color = 16764057 Then blauw = blauw + 1
        If Cells(i, j).DisplayFormat.Interior.Color = 10079487 Then oranje = oranje + 1
     Next i
       Cells(1015, j) = blauw
       Cells(1016, j) = oranje
       blauw = 0
       oranje = 0
    Next j
End Sub
 
HSV,

Bedankt voor de aanvulling.
Hoe eenvoudiger de code, des te beter het is.

Rob
 
Top @HSV

Toch nog even naar een formule-variant gekeken, weliswaar snel en de gegevens in rij 2 komen overeen op beide sheets.

Code:
=SOM((TRANSPONEREN($F$13:$F$1013)='Opl. Matrix'!$F$13:$F$67)*('Opl. Matrix'!H$13:H$67="x"))

in H1015 en afsluiten met CSE, verder kopieren over de kolommen, voor de "F" net zo
 
Eric,

Ook jij weer bedankt voor het geboden alternatief.
Nu hebben we in elk geval een keuze :D

Groet,

Rob
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan