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 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson