Bonjour à tous,

Voilà mon défis, j'ai mis en place une formule (avec des recherchev, fonction si, concatener, stxt) qui marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SI(RECHERCHEV($B23;CONVERT!$1:$1048576;10;FAUX)="CDR";"MAILLING000DTRCDR";SI(RECHERCHEV($B23;CONVERT!$1:$1048576;10;FAUX)="SND";"MAILLING000DTRSND";SI(RECHERCHEV($B23;CONVERT!$1:$1048576;10;FAUX)="ELE";"MAILLING000DTRELE";SI(RECHERCHEV($B23;CONVERT!$1:$1048576;10;FAUX)="FTV";"MAILLING000FTV";CONCATENER(STXT(RECHERCHEV(B23;CONVERT!$1:$1048576;5;FAUX);1;8);RECHERCHEV($B23;CONVERT!$1:$1048576;16;FAUX);RECHERCHEV($B23;CONVERT!$1:$1048576;17;FAUX);"DTR";RECHERCHEV($B23;CONVERT!$1:$1048576;10;FAUX))))))
Vu que je suis débutant en vba, j'ai bidouillé quelque chose (voir ci-dessous) en enregistrant une macro dans laquelle j'ai utilisé la formule sur la feuille et étirée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 Range("C23").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(VLOOKUP(RC2,CONVERT!R1:R1048576,10,FALSE)=""CDR"",""MAILLING000DTRCDR"",IF(VLOOKUP(RC2,CONVERT!R1:R1048576,10,FALSE)=""SND"",""MAILLING000DTRSND"",IF(VLOOKUP(RC2,CONVERT!R1:R1048576,10,FALSE)=""ELE"",""MAILLING000DTRELE"",IF(VLOOKUP(RC2,CONVERT!R1:R1048576,10,FALSE)=""FTV"",""MAILLING000FTV"",CONCATENATE(MID(VLOOKUP(RC[-1],CONVERT!R1:R1048576,5,FALSE),1,8),VLOOK" & _
        "ONVERT!R1:R1048576,16,FALSE),VLOOKUP(RC2,CONVERT!R1:R1048576,17,FALSE),""DTR"",VLOOKUP(RC2,CONVERT!R1:R1048576,10,FALSE))))))"
        Range("C23").Select
    Selection.AutoFill Destination:=Range("C23:C200"), Type:=xlFillDefault
    Range("C23:C200").Select
Je veux que cette formule s'applique à partir de la cellule C23 jusqu'à C200.

Pouvez-vous réussir à programmer cette fonction?
nb: Fichier avec la macro dans "MAJ Classeur1.xls" -> MAJ Classeur1.xls

Merci par avance de votre aide