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

Conditional Formatting met Visual Basic Excel2003

Status
Niet open voor verdere reacties.

cyclodries

Gebruiker
Lid geworden
20 jul 2010
Berichten
6
Hello,

Ik weet dat dit wss een super basic issue is, maar het lijkt me op de één of andere manier moeilijker voor de nog wat "oudere"Office... en vooral voor mezelf! :)
Ik heb een 9-tal mogelijke waarden die ik automatisch zou willen kleuren bij het ingeven ervan. Zowel de shading van de cel als de kleur van het lettertype.
Conditional formatting dus... maar uitgebreider dan de gelimiteerde 3 conditions die Office standaard toestaat.
Jawel... deze vraag is idd al 100X aan bod gekomen hier.. I know! :) srry

Ik heb ondertussen al gelezen dat VBA soelaas kan brengen, maar na 6-7 verschillende versies te hebben geprobeerd is het nooit volledig gelukt. Kan het zijn dat er ook via VBA in Office2003 een limitatie is in "conditions"? Of "begrijpt" 2003 de gevonden scripts mss gewoonweg nog niet?

Wat ik nodig heb is:

kleur x en shading x bij waarde x
kleur y en shading y bij waarde y...
en dit 9-maal toegepast over de hele kolom K en hetzelfde (maar met andere waarden) in kolom i

Iemand die mij al wat opweg kan helpen?
NOTE. vandaag VBA ontmaagding!
 
Aangezien je zelf geen bestandje plaatst.
Bekijk dit bestandje uit mijn archief eens daar zie je verschillende mogelijkheden.
 

Bijlagen

  • Allerlei Voorwaardelijke opmaak.xls
    62 KB · Weergaven: 48
@Willem, Thx!

VBA(4) is wat ik zocht... en waar kan ik dan de format van het lettertype bijvoegen? (bold en afhankelijk van de waarde een bepaalde kleur)
Kan ik deze formatting ook beperking tot enkel kolom K? en dan hetzelfde maar met andere waarden in kolom I ?

in bijlage mijn aangepaste bestandje.

Bekijk bijlage ATA.xlsx
 
Bekijk dit bestandje eens en pas het aan naar je eigen wensen.
 

Bijlagen

  • ATA_2.xls
    36 KB · Weergaven: 42
VBA conditional formatting, debug?

VET!

Ik ben ermee aan de slag gegaan en heb het kunnen integreren in een "Situal Awareness Board" dat we hopelijk zullen gebruiken op mijn werk.
Het werkte zoals ik hoopte, alleen toen ik verder wilde uitbreiden en automatiseren met een VLOOKUP-functie gaf hij fouten.
Ik weet niet of het ermee te maken heeft, maar ik krijg nu (na wat uitbreidingen en aanpassingen) ook steeds een error (end / debug) als ik in mijn "ICAOLIST" een bestemming wil toevoegen en er vanuit een ljist met VBA conditional formatting een kleurencode aan wil geven.

In bijlage het document.


Wat scheelt er nu dus concreet? :

1a) Een fout-melding bij het toevoegen van bestemmingen in de "ICAOLIST"-worksheet. Bij "End" kan ik nochtans wel nog bestemmingen toevoegen. Maar de code is niet meer stabiel.
1b) deze foutmelding plots ook geen reactie meer van de "VBA conditional formatting", die ik van de voorgaande oplossing heb kunnen kopieren.

2) Blijkbaar herkent Excel 2003 de waarde na een VLOOKUP niet om deze met dezelfde "VBA conditional formatting" een kleur te geven. Deze VBA-code werkt hier onder geen geval, terwijl het wel werkt als ik de waarde uit een dropdownlist kan kiezen... (zie ICAOLIST, alleen treedt daar dan de foutmelding op en is het ook gedaan)

De bedoeling van deze file is dat ik in de eerste worksheet een ICAO code kan ingeven in de daarvoor bestemde kolom en dat excel automatisch de "destination", "ATL" en "GTL" invult, die hij vindt in de "ICAOLIST"-worksheet.

Ik hoop dat de vraag nog duidelijk genoeg is! :)

Bekijk bijlage SA BOARD TEST.xlsm
 
Ik denk dat het ligt aan de beveiliging die je erop hebt gezet.
Haal die er eens af en probeer het opnieuw
 
De Vert.Zoeken formule nog eens doornemen.
 

Bijlagen

  • SA BOARD TEST(cobbe).xlsm
    75,7 KB · Weergaven: 30
Popipipo,

De beveiliging van die ene column is er nu af waardoor de VBA conditional formatting in die worksheet het nu idd wel terug doet.... een stap dichter. Op de eerste worksheet (DIGI SA BOARD) werkt het helaas nog steeds niet. Als de error verschijnt en ik op DEBUG klik, wordt de phrase "CASE = "NEG"" gehighlight. De waarden in column "F", "K" en "L" krijgen waarden afhankelijk van column "E". "K" en "L" zouden ook via die VBA conditional formatting een kleurcode krijgen, maar het lijkt me dat deze waarden niet als "waarde" worden gezien door VBA, maar eerder als "VLOOKUP"... ? correct?

@Cobbe, als ik jou documentje open geeft hij nog steeds dezelfde foutmelding. Wat heb je aangepast of wat wilde je hiermee proberen? de VLOOKUP werkt toch? niet dan?

thx!

hier de file zonder beveiliging: Bekijk bijlage SA BOARD TEST.xlsm
 
Code:
=VLOOKUP([COLOR="#FF0000"]E:E[/COLOR];ICAOLIST!A:B;2;FALSE)
De eerste parameter in de vlookup functie heb je gedefinieerd als een hele kolom (E:E)
Dit is in principe fout dit moet een enkele cel zijn Dus in regel 3 zou dit moeten zijn E3

Ook de 2e parameter zou ik niet definiëren als een hele kolom maar met een bereik die niet groter is als nodig.
Voor 1 zo'n formule zal het niet zo veel uitmaken maar als je alle formules zo maakt dan worden er heel veel onnodige berekeningen gemaakt.
Zie het als zoeken naar een boek op een boekenplank van 1 meter of zoeken op een boekenplank van 100 meter waarvan 99 meter wel leeg is maar dat weet je niet.
 
Inderdaad @PopiPipo! Dat hielp me weer een heel deel vooruit! ... hangt het dan ook af van de performance van de PC die het bestandje opent? Ik heb ondertussen de range aangepast naar 100 ipv infinitive. Hiermee lijkt hij de LOOKUP goed uit te voeren en ook de formatting via VBA toe te passen... MAAR! helaas niet opnieuw als ik de bewuste row een andere waarde geef. De LOOKUP werkt dan nog steeds, maar de format blijft bij een update in diegene die hij vond bij de eerste waarde.
Nochtans... als ik dezelfde formule opnieuw ingeef in kolom K en L, doet hij weer de update en staat de cel terug in de juiste format.

Verwacht ik dan teveel van de software? of moet ik mss mijn VLOOKUP-structuur aanpassen om hem wat minder rekenwerk te geven? Het lijkt hier vooral performance-wise een probleem te zijn.

Ik dacht dit op te lossen door met een macro-button de VLOOKUP-formula te herschrijven in de gehele kolom K en L, maar ik weet niet of dit wel de meest ergonomische oplossing is... misschien moet ik het bestand maar eerst verder vereenvoudigen???? wat is jullie advies?


hier nog eens de geüpdate versie:
 

Bijlagen

  • ATAtest.xlsm
    83 KB · Weergaven: 31
Om te beginnen kan je het beste eerst alle fouten uit het bestand halen. Bij het openen geeft het bestand als melding van een kringverwijzing. Dit is oa de veroorzaker =VERT.ZOEKEN(E6:E105;ICAOLIST!A6:B105;2;ONWAAR)

Zoals door popipipo al aangegeven klopt het gebruik van jouw Vlookups niet en dit zal je eerst op orde moeten brengen.
 
VenA, Popipipo

Er zijn idd enkele circular references ingeslopen. Ik wilde steeds dezelfde formule gebruiken voor hele kolommen, omdat er onderaan het document steeds nieuwe "missions" werden toegevoegd en er bovenaan een onlogisch aantal missions terug verwijderd worden. Het is dus een levend documentje, de formule zou dus steeds opnieuw moeten ingevoegd worden aan de staart van de lijst. De circular references zijn nu weggewerkt doordat ik ondertussen de lookupvalue nu wél per cell kan doortrekken zonder de table_array ook dynamisch te laten doortrekken (deze blijft namelijk wél fix, opgelost door een "list" te gebruiken)...

Hoedanook lost dit nog steeds het probleem van conditional formatting niet op...
Vaak schrijft men online dat dit een bug is en niet rechtstreeks op te lossen valt, kan zijn...maar dan dacht ik aan een refresh aangezien de cellen selecteren + F2 + Enter wel werkt.

Zou de volgende oplossing dan kunnen zijn een button toe te voegen en er een macro aan te koppelen die een gehele column refreshed (à la F2 + Enter)?



Concrete vraag: kan iemand me helpen bij het schrijven van deze macro?
nood: Push the button => Macro => F2 + Enter voor de gehele kolom K (althans tot K250)
(hetzelfde dan ook voor kolom L, liefst met diezelfde klik op de button natuurlijk)
 

Bijlagen

  • SA BOARD TEST.xls
    218 KB · Weergaven: 36
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan