Bonjour René, re Jean Marie
En fait René est un truqueur LOL !! cette ligne vient de me faire chercher un moment pourquoi ma Function "SPLIT15" ne retournait rien :
Réimputation mars 100151K/75905212602534
Car "75905212602534" ne contient que 14 caratères !! lol
Donc même la formule de Jean-Marie est tributaire d'avoir exactement 15 caractères car sinon dans ce cas de figure elle retourne :
"/75905212602534"
En fait j'ai fait deux fonctions, que l'on peut utiliser directement depuis la feuille dans une cellule :
=SPLIT15(A1)
=SPLITLONGEST(A1)
Function SPLIT15(ByRef Cell As Range)
Dim TheString As String, TheString15 As String
Dim i As Byte
Dim contenu As Variant
Application.Volatile
TheString = Cell.Value
contenu = Split(TheString, Chr(47))
For i = 0 To UBound(contenu)
If Len(contenu(i)) = 15 Then
TheString15 = contenu(i)
End If
Next
SPLIT15 = TheString15
End Function
Function SPLITLONGEST(ByRef Cell As Range)
Dim TheString As String, TheLongestString As String
Dim i As Byte, x1 As Byte, x2 As Byte
Dim contenu As Variant
Application.Volatile
TheString = Cell.Value
contenu = Split(TheString, Chr(47))
For i = 0 To 1
x1 = Len(contenu(0))
x2 = Len(contenu(1))
Next
If x1 < x2 Then
TheLongestString = contenu(1)
Else
TheLongestString = contenu(0)
End If
SPLITLONGEST = TheLongestString
End Function
La fonction SPLIT15 te retournera uniquement la chaine de caractère ayant 15 digits (quelle que soit le nombre de Slash)
La fonction SPLITLONGEST te retournera la chaine de caractère la plus long en deux chaines séparée par un seul Slash (ou le premier si il y en a plus)
Bon Dimanche
@+Thierry
PS La Function "SPLIT" est reconnue uniquement depuis Excel 2000 et +