IsText/IsNumeric werkt niet

Status
Niet open voor verdere reacties.

arnoo7

Gebruiker
Lid geworden
24 nov 2014
Berichten
79
Ik heb een (dacht ik in eerste instantie redelijk makkelijke) vraag. Maar zit ergens in een cirkeltje.

Op basis van een waarde in een invoerveld wil ik een macro uitvoeren. Ik heb alleen 2 verschillende bewerkingen afhankelijk van de invoer (codes). De bewerkingen in mijn echte spreadsheet afzonderlijk werken. Maar als ik de uitvoering afhankelijk wil maken van het invoerveld strand ik.

Ik heb codes die altijd eindigen op getallen (maar de code als geheel kan wel letters bevatten) en ik heb codes met letters op het eind. Dus mijn oplossing was om naar de laatste 2 tekens te kijken:

- Als tekst -> voer iets uit
- Als numeriek -> voer iets anders uit

Maar met de functie: right(waarde;2) maakt hij er ook bij getallen een string van ipv een getal. Als ik die tweak, bijvoorbeeld met *1 dan pakt hij hem wel, maar dan valt hij daar weer over als het juist letters aan het einde zijn. Waar kijk ik overheen?

Hierbij een versimpeld voorbeeldje. Iemand een tip?

Groet Arno

Even kleine aanvulling: de codes in het bestand zijn bedacht maar in de praktijd zijn de codes even lang. Anders kon ik het ms op lengte splitsten.
 

Bijlagen

Laatst bewerkt:
Probeer het eens zo:
Code:
Sub Macro1()
    Zoeksleutel = [Sleutel]

    On Local Error Resume Next
    tmp = Int(Right(Zoeksleutel, 2))
    If Err.Number = 0 Then
        MsgBox "Dit is een getal"
    Else
        MsgBox "Dit is tekst"
    End If
End Sub
 
Laatst bewerkt:
Right(tekst,2) geeft altijd een tekstwaarde terug. VBA is wel zo slim om te herkennen of het een getal is. Dus moet je het net andersom controleren.

Code:
Sub Vena()
  MsgBox IsNumeric(Right(Sheets("Blad1").Cells(3, 2), 2))
End Sub
 
Deze beide geprobeerd, gaan werken! dank jullie!

Groet Arno
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan