patricktoulon
XLDnaute Barbatruc
Bonsoir a tous
ras le bol des formules avec substitue a répétition de 36 kilomètres
voici SUBSTITUEX
Comme sa petite sœur native d'Excel elle substitue
somme toute ça casse pas une brique me direz vous
sauf qu'elle est capable de substituer un array de caractère ou array d'expressions par un caractère ou array de caractères ou expression ou array d'expressions ou un mélange
le tout en 4/5 lignes de code
pour un array de valeurs string {"toto";"titi";"loulou"}
pour un array de valeurs numériques {4;8;2}
imaginons
en A2 j'ai abcdefghijklmnopqrstuvwxyz
formule 1 :=SUBSTITUEX(A2;{"a";"d";"g"};"")
cette formule va replacer les lettre de l'array par rien
--------------------------------------------------------------
formule 2:=SUBSTITUEX(A2;{"a";"d";"g"};{"|";"@";"$"})
cette formule va replacer chaque item de l'array 1 (argument 2) par chaque item du même index de l'array 2 (argument 3)
formule3: =SUBSTITUEX(A2;{"ab";"ij";"op"};{"|";"@";"$"})
cette formule replace chaque expressions de l'array 1(argument 2) par un caractère( item du même index) de l'array 2(argument 3)
formule 4:=SUBSTITUEX(A2;{"a";"i";"p"};"toto")
cette formule remplace chaque caractère de l'array 1 (argument 2) par la même expression (argument 3)
si vous décidez d’argumenter 2 array et que l'array( 2) argument 3) n'a pas le même nombre d'item
vous aurez dans la cellule notEqualBoundary
ps: a noter qu'elle fonctionne aussi pour les numérique dans toute ces variantes
=SUBSTITUEX(A9;{"2";"6";"8"};{3;7;9})
à noter aussi que l'array 2 (argument 3) peut être un array de numériques , caractères , expressions mélangées
voila c'est pas de la grande fonction mais pour coder un multiple substitue dans une cellule ça devient tout de suite plus simple
ras le bol des formules avec substitue a répétition de 36 kilomètres
voici SUBSTITUEX
Comme sa petite sœur native d'Excel elle substitue
somme toute ça casse pas une brique me direz vous
sauf qu'elle est capable de substituer un array de caractère ou array d'expressions par un caractère ou array de caractères ou expression ou array d'expressions ou un mélange
le tout en 4/5 lignes de code
- l'argument 1 la cellule ou un string
- l'argument 2 un array de caractères ou d'expressions
- l'argument 3 un array de carateres ou d'expression(numerique ou string) ou un string ou rien
pour un array de valeurs string {"toto";"titi";"loulou"}
pour un array de valeurs numériques {4;8;2}
VB:
Function SUBSTITUEX(T As String, arr, Optional ByVal arr2 = "")
Dim I&, Q
For I = 1 To UBound(arr)
If IsArray(arr2) Then
If UBound(arr2) <> UBound(arr) Then SUBSTITUEX = "notEqualBoundary": Exit Function
Q = arr2(I, 1)
Else: Q = arr2
End If
T = Replace(T, arr(I, 1), Q)
Next
SUBSTITUEX = T
End Function
imaginons
en A2 j'ai abcdefghijklmnopqrstuvwxyz
formule 1 :=SUBSTITUEX(A2;{"a";"d";"g"};"")
cette formule va replacer les lettre de l'array par rien
--------------------------------------------------------------
formule 2:=SUBSTITUEX(A2;{"a";"d";"g"};{"|";"@";"$"})
cette formule va replacer chaque item de l'array 1 (argument 2) par chaque item du même index de l'array 2 (argument 3)
formule3: =SUBSTITUEX(A2;{"ab";"ij";"op"};{"|";"@";"$"})
cette formule replace chaque expressions de l'array 1(argument 2) par un caractère( item du même index) de l'array 2(argument 3)
formule 4:=SUBSTITUEX(A2;{"a";"i";"p"};"toto")
cette formule remplace chaque caractère de l'array 1 (argument 2) par la même expression (argument 3)
si vous décidez d’argumenter 2 array et que l'array( 2) argument 3) n'a pas le même nombre d'item
vous aurez dans la cellule notEqualBoundary
ps: a noter qu'elle fonctionne aussi pour les numérique dans toute ces variantes
=SUBSTITUEX(A9;{"2";"6";"8"};{3;7;9})
à noter aussi que l'array 2 (argument 3) peut être un array de numériques , caractères , expressions mélangées
voila c'est pas de la grande fonction mais pour coder un multiple substitue dans une cellule ça devient tout de suite plus simple