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

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

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

Message par Clippy »

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 : 9242
Inscription : mer. 22 avr. 2026, 17:21

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 »