Function MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As String() ' sStr -> chaîne à parser ' bKeepSepar -> garder ou non les caractères de référence ' aArray -> tableau des références de taille variables Dim sCol As New Collection Dim sChar As String, sLeft As String Dim bFound As Boolean Dim aRes() As String Dim i As Integer, j As Integer, NbCarac As Integer i = 0 While LenB(sStr) > 0 i = i + 1 bFound = False For j = LBound(aArray) To UBound(aArray) NbCarac = Len(aArray(j)) sChar = Mid$(sStr, i, NbCarac) If sChar = CStr(aArray(j)) Then bFound = True: Exit For Next j If bFound Then sLeft = Left$(sStr, i - 1) If LenB(sLeft) > 0 Then sCol.Add sLeft If bKeepSepar Then sCol.Add sChar sStr = Right$(sStr, Len(sStr) - (NbCarac + (i - 1))) i = 0 ElseIf sChar = vbNullString Then sCol.Add sStr sStr = vbNullString End If Wend ReDim aRes(sCol.Count - 1) For i = 1 To sCol.Count aRes(i - 1) = sCol.Item(i) Next i MultiSplit = aRes Set sCol = Nothing Erase aRes End Function ' EXEMPLE D'UTILISATION Private Sub Form_Load() Dim a$(), i% a = MultiSplit( _ "Function MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As String()", _ False, "(", ")", ",", "String", " ") For i = 0 To UBound(a) Debug.Print "_" & a(i) & "_" Next i 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.