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

zoeken met vba naar bepaalde celkleur in bepaalde range

Status
Niet open voor verdere reacties.

luckybasterd040

Gebruiker
Lid geworden
20 sep 2011
Berichten
18
Hallo allemaal,

Mijn vraag is of iemand mij kan uitleggen hoe deze functie werkt.
Ik begrijp het pricipe wel maar ik wil hem aan de praat krijgen en snap eerlijk gezegd nog niet zo veel van vba's.

om deze functie gaat het:

Code:
Function CountByColor(InputRange As Range, ColorRange as Range) As Long
Dim cl As Range, TempCount As Long, ColorIndex As Integer
    ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
    TempCount = 0
    For Each cl In InputRange.Cells
        If cl.Interior.ColorIndex = ColorIndex Then 
            TempCount = TempCount + 1
        End If
    Next cl
    Set cl = Nothing
    CountByColor = TempCount
End Function
Wat ik volgens mij begrijp is, dat je in de functie moet ingeven de: Range, cel met daarin de kleur die gezocht moet worden in de range.


Wie wil deze leek helpen:)

Groetjes Luc
 
Laatst bewerkt door een moderator:
Inputrange is het bereik waarin je wilt zoeken.
Colorrange is het bereik waar de gezochte kleur in staat.

Het is een functie dus je dient de code in een Module te plaatsen en niet achter een werkblad.

Met vriendelijke groet,


Roncancio
 
@Roncancio,

Zou je mij willen uitleggen hoe ik deze precies moet invoeren zoals jij dat beschrijft?
Sorry als ik te veel vraag, maar ik ben echt een leek m.b.t. Macro's en VBA.

Alvast hartelijk dank!

Groetjes Luc
 
- Klik in Excel op ALT-F11

Je zit nu in de VBE (Visual Basic Editor)

- Kies bovenaan in de VBE voor Invoegen - Module.
- Plak in die module de code.

Met vriendelijke groet,


Met vriendelijke groet,


Roncancio
 
Krijg hem niet aan de praat :-(, ik probeer de range in te voeren krijg de hele tijd meldingen dat er tekens bij moeten of weg.

Misschien kan je ingevuld voorbeeld laten zien?

Met vriendelijke groeten,

LucaS
 
Zie bijlage.
Let op: deze functie werkt niet met kleuren die via Voorwaardelijke Opmaak aangebracht zijn.
 

Bijlagen

  • countcolor(1).xls
    40,5 KB · Weergaven: 173
Is er dan een "functie" of "vba functie" die dit wel kan?

Misschien kan dit beetje informatie jullie helpen:

Ik ben bezig met een invulsheet waarin lijsten staan met gegevens.
Als er niks wordt geselecteerd staat er "Please make your choice" met een licht rode achtergrond, adv voorwaardelijke opmaak. Wanneer er in de cel bepaalde gegevens worden gekozen veranderd de achtergrond naar licht blauw.
Nu is mijn idee om dmv een functie of "vba Functie" te zoeken in het bereik waar in de keuzes gemaakt moeten worden naar de licht rode achtergrondkleur. Wanneer deze meer dan 1 is, is er een veld niet ingevuld en moet er een melding komen dat het formulier niet compleet is ingevuld.

Hoop dat het allemaal een beetje te doen is want ik ben betreft VBA functies echt een leek.

Groetjes Lucas
 
Laatst bewerkt door een moderator:
Dan kun je best de lichtblauwe en lichtrode kleur door gewone opmaak en niet door voorw. opmaak laten plaatsen. Dat kan in dezelfde macro als waarmee je op zoek gaat naar die kleuren. Een voorbeeldbestand is vereist om een goed antwoord te kunnen geven.
 
Laatst bewerkt door een moderator:
Daar heb ik helemaal niets aan.
Bekend moet natuurlijk zijn wat er PRECIES moet gebeuren als yes of no wordt gekozen (zowel in G3, als G4, enz.).
 
Laatst bewerkt door een moderator:
Wat er gebeurt zoals je ziet is dat de achtergrond veranderd.
Wat ik wil is dat wanneer er een wordt vergeten in te vullen, dus dat de achtergrond rood blijft, dat het bestand niet kan worden opgeslagen of dat er een message box komt met "comlete sheet" oid.

Groetjes Lucas
 
Laatst bewerkt door een moderator:
Zoiets dan? Je krijgt een waarschuwing als niet alles ingevuld is (maar je kan uiteindelijk het bestand toch opslaan)
 

Bijlagen

  • countcolor(1).xls
    44 KB · Weergaven: 175
Ik zou dit kiezen (zie bijlage, maar is afhankelijk van wat de vragensteller precies wil).
Als niet alles is ingevuld en men probeert op te slaan, komt er een waarschuwing en is opslaan niet mogelijk.
 
@ luckybasterd040 en zapatr willen jullie stoppen met het herhaaldelijk quoten van elkaars berichten wanneer jullie direct na elkaar reageren.
 
huijb,
als er al vier verschillende mensen in een topic actief zijn, dan is het niet zo vreemd dat je iemands tekst aanhaalt, anders is het moeilijk te beoordelen wie op wie reageert. Dat is de reden dat ik het deed, want doorgaans houd ik er wel rekening mee.
 
Ik schrijf dat ik quotes heb verwijderd van berichten die direct na elkaar zijn geplaatst. Dus niet met tussenkomst van andere berichten.
 
@ Wher en Zapatr,

Super bedankt voor jullie hulp! ik ben blij dat ik dit geweldige forum heb gevonden, met de expertise dat hier hier aanwezig is!
Ik kan hier zeker wat mee! ook ben ik nu getriggert om mij nog meer te verdiepen in de wereld van "macro's" en "visual basics"!

Nogmaals bedankt!
 
@Zapatr,
De macro van jou werkt goed! zelfs zo goed dat als ik het bestand wil opslaan, ik het niet kan opslaan.
Hier misschien nog een oplossing voor?
Het is namelijk zo dat het bestand opgeslagen moet worden in zo te zeggen beginstand, met overal "please make your choice".

Groetjes Lucas
 
In je bericht van gistermiddag staat (citaat): "Wat ik wil is dat wanneer er een wordt vergeten in te vullen, dus dat de achtergrond rood blijft, dat het bestand niet kan worden opgeslagen of dat er een message box komt met "comlete sheet" oid."(einde citaat). Vandaar dat ik voor een oplossing koos waarbij het bestand niet kan worden opgeslagen zolang er nog een cel is die paars is (als alle cellen blauw zijn, kan het bestand wél worden opgeslagen). (Bijna) alles kan, maar dan moet je precies aangeven wat je wil.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan