Bonjour à tous,
Voilà mon défis, j'ai mis en place une formule (avec des recherchev, fonction si, concatener, stxt) qui marche.
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:=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))))))
Je veux que cette formule s'applique à partir de la cellule C23 jusqu'à C200.Code:
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
Pouvez-vous réussir à programmer cette fonction?
nb: Fichier avec la macro dans "MAJ Classeur1.xls" -> Pièce jointe 140846
Merci par avance de votre aide :)