Private Function GetSplitData(ByVal sSrc As String, ByRef aArray() As Variant, Optional ByVal bLongValue As Boolean = False, Optional ByRef sSepar As String = ";") As Long Dim aString() As String aString = Split(sSrc, sSepar) If UBound(aString) = 0 Then GetSplitData = 0 Else Dim i As Long ReDim aArray(UBound(aString)) If bLongValue Then For i = 0 To UBound(aString) aArray(i) = Val(aString(i)) Next i Else For i = 0 To UBound(aString) aArray(i) = aString(i) Next i End If GetSplitData = UBound(aString) + 1 Erase aString End If End Function ' EXEMPLE D'UTILISATION ' Private Sub Form_Load() Const sSample1 As String = "voici;une;phrase;séparée;par;des;point-virgules" Const sSample2 As String = "1;215;6;7;895;200;41" Dim aResult() As Variant, lRet As Long, i As Long Dim sMess As String, lSum As Long lRet = GetSplitData(sSample1, aResult()) sMess = sSample1 & vbCrLf If lRet > 0 Then For i = 0 To lRet - 1 sMess = sMess & vbCrLf & aResult(i) Next i MsgBox sMess End If lRet = GetSplitData(sSample2, aResult(), True) sMess = sSample2 & vbCrLf lSum = 0 If lRet > 0 Then For i = 0 To lRet - 1 sMess = sMess & vbCrLf & CStr(aResult(i)) lSum = lSum + aResult(i) Next i MsgBox sMess & vbCrLf & "total = " & CStr(lSum) End If Unload Me End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.