• 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 met veel "regeltjes"

Status
Niet open voor verdere reacties.
Er gebeurd wel iets nu, maar krijg de melding "foutcode 9 het subscript valt buiten het bereik"
:D
 
@ Zapatr
Ik werk ook met Excel 2002-SP3 en de macro werkt hier perfect
Eenieder die beide macro's controleert (die van snb en die van jou) kan zien dat beide macro's niet overeenkomen.
Dat moet jij (bakkertje) ook gezien hebben, en het ware sportief geweest als je dat even had vermeld.

De macro van snb siet er zo uit:
Code:
Sub tst()
On Error GoTo XL91
For Each rw In Blad1.UsedRange.Rows
rw.Find(WorksheetFunction.Max(rw), rw.Cells(1), xlValue, 1).Interior.ColorIndex = 6
rw.Find(WorksheetFunction.Min(rw), , xlValues, 1).Interior.ColorIndex = 15
Next
XL91:
End Sub

De macro van jou (bakkertje) luidt als volgt:
Code:
Sub tst()
On Error GoTo XL91
For Each rw In Blad1.UsedRange.Rows
rw.Find(WorksheetFunction.Max(rw), , xlValues, 1).Interior.ColorIndex = 6
rw.Find(WorksheetFunction.Min(rw), , xlValues, 1).Interior.ColorIndex = 15
Next
XL91:
End Sub
Let op het verschil !
Waarvan akte, en waarmee het verschil tussen al dan niet werkend is verklaard.

De wel werkende macro is overigens geen goede oplossing voor het probleem van Djoane, want die wenst dat - als een maximum of minimum twee keer voorkomt - alleen de laatste maximum-/minimumwaarde wordt gekleurd. Daar is de macro natuurlijk wel op aan te passen.
De niet-vba-oplossing met voorwaardelijke opmaak die ik hierboven gaf, voldoet overigens wel aan die voorwaarde.

snb,
de tweede regel in jouw macro geeft bij mij een fout (na uitschakelen van "On Error" uiteraard), nl:
"Het subscript valt nuiten het bereik".
 
Klein vraagje voor Zapatr,
Je formule werkt geweldig. Helemaal tof. Alleen ik heb iets verkeerds gezegd. Niet in alle gevallen moet hij de waarde zo ver mogelijk in de reeks nemen als er meerdere met gelijken getallen zijn. Bij de laagste waarde, moet ie de eerste in de reeks pakken die hij tegenkomt, en de hoogste aan het einde. Wat moet ik aanpassen in de formule, ik heb hem gewoon overgenomen, en de celnr's veranderd, maar wat er exact staat weet ik eerlijk gezegt niet :o
Djoane,
In de bijlage het bestand, aangepast aan jouw laatste wens.
De eerste regel blijft hetzelfde, alleen de tweede moet gewijzigd worden.
Voor de duidelijkheid geef ik hier beide voorwaarden (regels) weer.

Regel 1 (ongewijzigd):
=EN(A2<>"";A2=MAX($A2:$O2);AANTAL.ALS($A2:A2;A2)=AANTAL.ALS($A2:$O2;A2))

Regel 2 wordt:
=EN(A2<>"";A2=MIN($A2:$O2);AANTAL.ALS($A2:A2;A2)=1)
 
Dat verschil waar jij op doelt had dan ook geen uitstaans met de werking v/d macro, dit geeft enkel aan vanaf waar er moet gezocht worden. Als je dan toch zo opmerkzaam was had je ook kunnen zien dat de fout hier zit
Code:
Sub tst()
  For Each rw In Blad1.UsedRange.Rows
    rw.Find(WorksheetFunction.Max(rw), rw.Cells(1), xlValue[COLOR="Red"]s[/COLOR], 1).Interior.ColorIndex = 6
    rw.Find(WorksheetFunction.Min(rw), , xlValues, 1).Interior.ColorIndex = 15
  Next
End Sub
 
Dat verschil waar jij op doelt had dan ook geen uitstaans met de werking v/d macro, dit geeft enkel aan vanaf waar er moet gezocht worden. Als je dan toch zo opmerkzaam was had je ook kunnen zien dat de fout hier zit...
Goed lezen a.u.b. ! Je antwoord is naast de kwestie.
Ik heb geen specifieke fout aangeduid, ik heb alleen vermeld dat de bewuste macro niet werkt (een opmerking die juist is), dat jij vermeldde dat dat wel zo was, en dat jij een andere macro presenteerde. Dat die s ontbrak had ik heus wel gezien (en zal iedereen gezien hebben die de macro controleerde).
 
de tweede regel in jouw macro geeft bij mij een fout (na uitschakelen van "On Error" uiteraard), nl:
"Het subscript valt nuiten het bereik".
Dan verwacht ik wel een ander antwoord als bovenstaande als je het dan toch gezien had
 
Oke, als VB-leek zal ik ook even gaan mierenn..ken,

Warme bakker, jou code zoals die daar staat is anders. Verschil: On error heeft Zapatr erbij gezet.

Ten tweede: 'Sub tst" lijkt mij een 0 punt. (soort startpunt/opening van macro?)

Dus

0 = Sub tst
0 = On error (telt niet mee heeft Zapatr ingevoegd)
1 = Bereik
2 = Zinnetje met de fout erin.

Dan hebben jullie beide toch gelijk? :D

En Zapatr, Thx! Ik ga het meteen testen.
 
Dan verwacht ik wel een ander antwoord als bovenstaande als je het dan toch gezien had
bakkertje,
k heb gemeld welke foutmelding ik bij uitvoering van de macro kreeg.
snb is deskundig genoeg om te weten welke aanpassing hij zal moeten doen, daar heeft hij mij niet voor nodig.
Eenieder die op dit forum een aantal berichten van snb gelezen heeft, weet dat hij/zij uitermate deskundig is in het schrijven van macro's,
en dat hij op dit forum tot de besten behoort wat het geven van antwoorden betreft.
 
In de bijlage een nieuwe poging met tegelijkertijd de extra wens ingebouwd.
Code:
Sub tst()
  For Each rw In Blad1.UsedRange.Rows
    rw.Find(WorksheetFunction.Min(rw), , xlValues, 1).Interior.ColorIndex = 15
    rw.Find(WorksheetFunction.Max(rw), , xlValues, 1, , xlPrevious).Interior.ColorIndex = 6
  Next
End Sub
 

Bijlagen

In de bijlage een nieuwe poging met tegelijkertijd de extra wens ingebouwd.
snb,
je laatste macro werkt bij mij (in Excel 2002) prima.
Ik had overigens niet anders verwacht (zie mijn bericht hierboven).
 
@Zapatr
Mooi zo. Dankjewel voor het testen.
 
@ snb,

Bij mij werkt hij ook super. Bedankt hoor voor het meedenken.

Ik heb totaal geen idee van VB, had er weleens van gehoord, maar wat het was wist ik niet. Ik begin toch wel erg nieuwsgierig te worden, vooral omdat het een achterliggend iets is, en dus minder gevoelig is fouten die je in je blad maakt nadat ze zijn aangemaakt.

Ga deze zomervakantie misschien toch maar eens kijken naar een mooie cursus op internet. (tot die tijd geen tijd:confused:)
 
Laatst bewerkt:
@Djoane,

Bedankt voor je feedback.
Ik heb er weer van geleerd hoe je met VBA omgekeerd kunt zoeken.
Waarom Rudi en ik geen foutmeldingen kregen heeft vermoedelijk te maken met het nummer dat aan xlValue en xlValues wordt toegekend door de VBA-compiler.
Maar we zijn er uit: het werkt nu in Excel 2000, 2003 en 2007.
Ik ben bang dat je veel van wat je hier tegenkomt over VBA niet zult aantreffen in een cursus. Maar een goede basis is natuurlijk wel prettig ( om niet te zeggen noodzakelijk).

@Rudi
Ook bedankt voor het meetesten.
 
Laatst bewerkt:
Voor die basis doe ik het dan ook;)

Als je niet zou weten hoe je een pan op het vuur moet zetten, dan kun je al zeker niet koken. En zo zal dat ook zijn met VB. :D
 
@ Zapatr, heb de nieuwe formule verwerkt, maar kan het kloppen, dat ze dan allebei een kleurtje krijgen? Ik heb 1 regel waar ik 2x 0,00 heb. Eerst was de 2e in de reeks groen, nu beide.
 
@ Zapatr, heb de nieuwe formule verwerkt, maar kan het kloppen, dat ze dan allebei een kleurtje krijgen? Ik heb 1 regel waar ik 2x 0,00 heb. Eerst was de 2e in de reeks groen, nu beide.
Nee, bij mij gaat het goed --> zie bijlage.
In rij 2 is 0,00 het maximum; komt 2 keer voor (in B2 en i2) en alleen i2 wordt gekleurd.
In rij 4 is 0,00 het minimum; komt 2 keer voor (in C2 en K2) en alleen C2 wordt gekleurd.

De regels die ik hierboven heb gegeven voor voorw. opmaak, gelden voor cel A2.
Kopieer deze cel en plak dan de opmaak (ALLEEN DE OPMAAK) naar de andere cellen van het bereik.
Je kunt ook het volledige bereik selecteren (in het voorbeeldbestand A2:O4), en dan bij voorwaardelijke opmaak bovenstaande 2 regels instellen. De voorw. opmaak die geldt voor A2, past zich dan voor de overige cellen automatisch aan.
 
Ik heb mijn fout gevonden. Ik deed iedere keer bij nieuwe regels over de gehele selectie de opmaak plakken. Waardoor in a2 2 voorwaarden waren, en in de rest 6 of 8. Daarom ging het mis.

Thx for helping.:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan