=1*SI(ESTNUM(TROUVE("/";A2));SI(MOD(STXT(A2;TROUVE("/";A2)+1;1)*1;2)=0;STXT(A2;1;TROUVE("/";A2)-1);STXT(A2;1;TROUVE("/";A2)-2)&STXT(A2;TROUVE("/";A2)+1;1));A2)
IMPAIR(SI(ESTNUM(CHERCHE("/";A2));GAUCHE(A2;CHERCHE("/";A2)-1);A2))
=--SI(ESTERR(TROUVE("/";A2));A2;SI(EST.PAIR(GAUCHE(A2;TROUVE("/";A2)-1));GAUCHE(A2;TROUVE("/";A2)-2)&DROITE(A2;1);GAUCHE(A2;TROUVE("/";A2)-1)))
Function toto(r$)
'Application.Volatile
Dim a&, b&, x
x = Split(r, "/")
With WorksheetFunction
Select Case UBound(x)
Case 0: toto = CLng(x(0))
Case 1
a = CLng(x(0))
b = (a \ (10 ^ Len(x(1)))) * (10 ^ Len(x(1))) + CLng(x(1))
If .IsOdd(a) And .IsEven(b) Then
toto = a
ElseIf .IsOdd(b) And .IsEven(a) Then
toto = b
Else
toto = ""
End If
Case Else: toto = ""
End Select
End With
End Function
Ca n'est pas compliqué, mais pas sûr que ce soit plus intéressant qu'une formule Excel.(...)
Quant à la fonction toto(r$), je vais maintenant tenter de l'intégrer dans mon classeur.
(...)
Re-bonjour (voire re²),
... mais elle implique que le cas suivant n'est pas possible: 1234/3 (ou alors quelque chose m'échappe, une fois de plus!)?
... et rien n'a changé, depuis lors (... au point que j'en suis tout courbattu!)Je m'incline évidemment avec respect face à la proposition de CISCO