Macro : dans une cellule remplacement d'une valeur par une autre

cjob

XLDnaute Nouveau
Bonjour,
Dans une macro, je souhaite remplacer les différentes valeurs d'une colonne par leur code. Pour cela, j'utilise la formule suivante :

<<
ActiveCell.FormulaR1C1 = _
"=IF(RC[1]=""Jean"",""1"",IF(RC[1]=""Michel"",""2"",IF(RC[1]=""Nathan"",""3"",IF(RC[1]=""Marc"",""4"",IF(RC[1]=""Luc"",""5"",IF(RC[1]=""Louis"",""6"",IF(RC[1]=""André"",""7"",IF(RC[1]=""Marin"",""8"",""""))))))))"
>>

Le problème est que le nombre de remplacement est limité : si je rajoute une personne, la macro plante.

Avez-vous une idée pour contourner le pb ou une autre façon de s'y prendre ?

Merci,
Cédric.
 

tototiti2008

XLDnaute Barbatruc
Re : Macro : dans une cellule remplacement d'une valeur par une autre

Bonjour cjob,

il me semble que l'on est limité à 8 IF imbriqués dans une formule... c'est pouquoi Microsoft a inventé RECHERCHEV (VLOOKUP)
Activecell.FormulaR1C1 = _
"=VLOOKUP(RC[1],{""Jean"",1;""Michel"",2;""Nathan"",3;""Marc"",4;""Luc"",5;""Louis"",6;""André"",7;""Marin"",8},2,false)"
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 686
Membres
103 638
dernier inscrit
Pascal29