between met if statement in VBA

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

nout

Gebruiker
Lid geworden
11 sep 2012
Berichten
25
Hallo,

Ik ben benieuwd of er een oplossing is binnen vba om met het if statement een sturing aan een cel te geven als de waarde binnen 2 grenzen of er gelijk aan ligt en er buiten valt, zie mijn niet werkende code

Code:
Sub test()
Dim waarde As Double
nominaalspec = Cells(1, 3).Value
Uppertol = Cells(2, 3).Value
Lowertol = Cells(3, 3).Value

Upperspec = nominaalspec + Uppertol
lowerspec = nominaalspec + Lowertol

     waarde = Cells(6, 3).Value ' leest de waarde van de invoercel in            '
           If waarde > lowerspec And waarde < Upperspec Then
                               Cells(6, 3).Interior.ColorIndex = 3
            Else: Cells(6, 3).Interior.ColorIndex = 4
      End If
End Sub


bij voorbaat dank,

nout
 
Laatst bewerkt door een moderator:
krijg je een foutmelding bij deze code, want ik heb niet heel veel verstand van VBA, maar op het oog is dit een geldige code.
 
Laatst bewerkt:
Bij mij doet-ie het met een kleine aanpassing:
Code:
Sub test()
Dim waarde As Double

    nominaalspec = ActiveSheet.Cells(1, 3).Value
    Uppertol = ActiveSheet.Cells(2, 3).Value
    Lowertol = ActiveSheet.Cells(3, 3).Value

    Upperspec = nominaalspec + Uppertol
    lowerspec = nominaalspec + Lowertol

     waarde = Cells(6, 3).Value ' leest de waarde van de invoercel in            '
    If waarde > lowerspec And waarde < Upperspec Then
        Cells(6, 3).Interior.ColorIndex = 3
    Else
        Cells(6, 3).Interior.ColorIndex = 4
    End If
End Sub
 
De cell kleurt in dit geval altijd groen omdat hij aan de voorwaarde voldoet, ik weet niet hoe ik de voorwaarde "tussen lower en upperspec of gelijk aan" moet noteren.
de cell moet groen gekleurd worden indien de waarde gelijk aan of tussen de lower en upperspec ligt, wanneer de waarde erbuiten ligt dan moet deze rood kleuren.
 
Zoals ik al zei: bij mij doet-ie dat prima. Wat is dus jouw probleem? Post anders een bestandje met jouw code.
 
Als ik het goed begrijp zoek je naar "groter dan of gelijk aan" én "kleiner dan of gelijk aan". In jou voorbeeld neem je "gelijk aan" niet mee. Door de regel:

If waarde > lowerspec And waarde < Upperspec Then
te wijzigen in
If waarde >= lowerspec And waarde <= Upperspec Then

neem je de grenswaarden wel mee.
 
heren,

bedankt voor de hulp, de code werkt.

groeten,

nout:)
 
of met een one-liner:

Code:
Sub snb()
  Cells(6, 3).Interior.ColorIndex = 4+(Cells(6, 3).Value >= Cells(1, 3).Value + Cells(3, 3).Value and Cells(6, 3).Value <=Cells(1, 3).Value + Cells(2, 3).Value)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan