
Hoe haal je het numerieke gedeelte op uit een alfanumerieke tekenreeks?
Bijvoorbeeld: als cel A3 de tekenreeks esd K+ WS4600 bevat, moet de waarde 4600 worden geretourneerd in cel B3 of in cel C3. Hiervoor hebben we 2 functies: strCountNumbers (in B3) en GetNumbers (in C3)
1. Kopieer de onderstaande code
2. Open een nieuwe werkmap
3. Druk op de toetscombinatie ALT + F11 om de Visual Basic Editor te openen
4. Druk op de toetscombinatie ALT + N om het menu Invoegen te openen
5. Druk op M om een standaard module in te voegen
6. Daar waar de cursor knippert voeg je de code in middels Ctrl + V
7. Druk op de toetscombinatie ALT + Q om de Editor af te sluiten en terug te keren naar Excel
8. Formule invoegen in juiste cel.
Bijvoorbeeld in B3: =strCountNumbers(A3) of =GetNumbers(A3)
Function strCountNumbers(strText As String) As String
Dim intLengte As Integer, strChar As String, X As Integer, strNumber As String
intLengte = Len(strText)
For X = 1 To intLengte
strChar = Mid(strText, X, 1)
If strChar Like "[0-9]" Then
strNumber = strNumber & strChar
End If
Next
strCountNumbers = strNumber
End Function
Function GetNumbers(ByVal strText As String) As String
Dim X As Long
For X = 1 To Len(strText)
If Mid(strText, X, 1) Like "[!0-9]" Then Mid(strText, X) = " "
Next
GetNumbers = Replace(strText, " ", "")
End Function
Getallen uit het BEGIN van een tekenreeks halen.

In [B3] =LEFT(A3; match(TRUE; MID
(A3 & "x"; {1\2\3\4\5\6\7\8\9\10\11\12}; 1) > "9"; 0) - 1)
Nog een bruikbare formule:
Formule in B3 invoeren
In [B3] =LEFT(A3;MATCH(TRUE;ISERROR(1*LEFT(SUBSTITUTE(IF(ISNUMBER
(-MID(A3;FIND(".";A3&".")+1;1));A3;SUBSTITUTE(A3;".";"X"))
;" ";"X")&"X";ROW(INDEX(A:A;1):INDEX(A:A;99))));0)-1)