Private Function SplitNumberChars(ByVal sStr As String, ByVal iCut As Long, Optional RemoveVbCrLf As Boolean = False, Optional SeparChar As String = "-", Optional bUseMnemonic As Boolean = False) As String() Dim sRet As String, i As Long, lPos As Long, bCR As Boolean, sLine As String ' vire les VBCRLF et les ESPACE multiples générés If RemoveVbCrLf Then sStr = Trim$(Replace(sStr, vbCrLf, " ")) Do While InStr(1, sStr, " ") <> 0 sStr = Replace(sStr, " ", " ") Loop Else sStr = Replace(sStr, vbCrLf, " " & vbCrLf) End If ' traitement sRet = vbNullString Do While LenB(sStr) > 0 ' retour chariot le plus loin lPos = InStrRev(Left$(sStr, iCut + 2), vbCrLf) If lPos = 0 Then ' y'en a pas? on cherche l'espace le plus loin lPos = InStrRev(Left$(sStr, iCut + 1), " ") bCR = False Else bCR = True End If If lPos = 0 Then ' lpos toujours à zéro? donc ligne non-sécable If Len(sStr) > iCut Then If RemoveVbCrLf Then sRet = sRet & Left$(sStr, iCut - 1) & SeparChar & vbCrLf sStr = SeparChar & Mid$(sStr, iCut) Else sRet = sRet & Left$(sStr, iCut) & SeparChar & vbCrLf sStr = SeparChar & Mid$(sStr, iCut + 1) End If Else sRet = sRet & sStr & vbCrLf sStr = vbNullString End If Else sLine = Left$(sStr, lPos - 1) sStr = Right$(sStr, Len(sStr) - Len(sLine) - IIf(bCR, 2, 1)) sRet = sRet & sLine & vbCrLf End If Loop ' pas de UseMnemonic?.... If Not bUseMnemonic Then sRet = Replace(sRet, "&", "&&") ' retour SplitNumberChars = Split(sRet, vbCrLf) End Function
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.