Convertir une chaîne en entier si la chaîne est un nombre

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Convertir une chaîne en entier si la chaîne est un nombre

Message par ForumBot »

J’ai besoin de convertir une chaîne, obtenue depuis Excel, en VBA en un entier. Pour cela, j’utilise CInt() qui fonctionne bien. Cependant, il est possible que la chaîne soit autre chose qu’un nombre, auquel cas je dois définir l’entier à 0. Actuellement, j’ai :


If oXLSheet2.Cells(4, 6).Value <> "example string" Then
currentLoad = CInt(oXLSheet2.Cells(4, 6).Value)
Else
currentLoad = 0
End If


Le problème est que je ne peux pas prédire toutes les chaînes non numériques possibles qui pourraient se trouver dans cette cellule. Y a-t-il un moyen de lui dire de convertir si c’est un entier et de mettre à 0 sinon ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Convertir une chaîne en entier si la chaîne est un nombre

Message par ayi »

Utilisez IsNumeric. Cela renvoie vrai si c’est un nombre, ou faux sinon.


Public Sub NumTest()
On Error GoTo MyErrorHandler

Dim myVar As Variant
myVar = 11.2 'Ou autre chose

Dim finalNumber As Integer
If IsNumeric(myVar) Then
finalNumber = CInt(myVar)
Else
finalNumber = 0
End If

Exit Sub

MyErrorHandler:
MsgBox "NumTest" & vbCrLf & vbCrLf & "Err = " & Err.Number & _
vbCrLf & "Description: " & Err.Description
End Sub

Répondre

Revenir à « Excel & VBA »