Problemen met IsNumeric(cell) binnen een VBA-loop

  • Onderwerp starter Onderwerp starter keb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

keb

Gebruiker
Lid geworden
20 feb 2011
Berichten
155
Ik doorloop een hele lijst met "members".
Afhankelijk van de rang gebruik ik een andere kleur(voor de lagere rangen gaat dat goed)

Als er een hoofdrang staat (puur decimaal) dan moet deze lichtblauw gekleurd worden. Voor de getallen 1 tot en met 9 gaat dat goed, maar boven de tien niet: mijn detectie IsNumeric(cell) binnen de loop werkt dan niet. (zie voorbeeld).

Wie weet een oplossing?
 

Bijlagen

De links uitgelijnde getallen zijn string en geen numerieke waarden.
 
Als het je niet uitmaakt of het numeriek is of niet zou je kunnen gebruiken:
Code:
Sub Cellen_kleuren()

Dim rng As Range
Sheets("Blad1").Activate
Set rng = Range("A2", Range("A2").End(xlDown)) 'Loop van A2 tot A34

For Each Cell In rng
    dots = Split(Cell, ".")
    tel = UBound(dots)
     If tel = 0 Then Cell.Interior.ColorIndex = 37 'lichtblauw
     If tel = 1 Then Cell.Interior.ColorIndex = 48 'Grijs / bevat één punt
     If tel = 2 Then Cell.Interior.ColorIndex = 40 'Beige / bevat twee punten
     If tel = 3 Then Cell.Interior.ColorIndex = 0
     
Next
    
End Sub
 
Laatst bewerkt:
Boven de 10 gaat toch ook goed? Waarom via VBA kan ook wel met voorwaardelijke opmaak. Niet uitgewerkt overigens.
 

Bijlagen

Beste VenA,

Ik heb mijn oorspronkelijke code nog eens goed vergeleken met mijn ingezonden code: ik heb inmiddels ontdekt waarom het bij mij fout gaat.
Het is goed als vreemde ogen je dwingen om nog eens goed te kijken.

Dank voor de oplossing!
 
Laatst bewerkt:
Met VBA kan het ook wel.

Code:
Sub VenA()
  With Sheets("Blad1")
    ar = .Cells(1).CurrentRegion
    ar1 = Array(37, 48, 40, 0, 50)
    For j = 2 To UBound(ar)
      .Cells(j, 1).Interior.ColorIndex = ar1(Application.Min(4, UBound(Split(ar(j, 1), "."))))
    Next j
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan