Convertir une formule Excel en code vba
Résolu
HM
-
HM_1234 Messages postés 2 Statut Membre -
HM_1234 Messages postés 2 Statut Membre -
Bonjour,
Plutôt novice en VBA , j'aimerai automatiser un fichier mais je bloque sur une partie.
J'ai une formule Excel (Matricielle)sur toute une colonne, que je voudrais convertir en code.
En C3
'=IFERROR(LEFT(IF(A3="","",IFERROR(INDEX($A3:$A$100,SMALL(IF($B2:$B$100=$B2,ROW($A3:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C6
'=IFERROR(LEFT(IF(A6="","",IFERROR(INDEX($A6:$A$100,SMALL(IF($B5:$B$100=$B5,ROW($A6:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C9
=IFERROR(LEFT(IF(A9="","",IFERROR(INDEX($A9:$A$100,SMALL(IF($B8:$B$100=$B8,ROW($A9:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C12
'=IFERROR(LEFT(IF(A12="","",IFERROR(INDEX($A12:$A$100,SMALL(IF($B11:$B$100=$B11,ROW($A12:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
,...
Dans la colonne "B" j’ai deux valeurs possible LM1_ ou LM_2
A partir de la 1er valeur de la colonne B, ici B3 = « LM_1 », j’aimerai recherche la 1er valeur suivante = à B3 (1er valeur = LM_1 se trouve en B9) et renvoyer en C3 la valeur de la cellule A9
A9 = 97066595. Je dois donc retrouver en A3 la valeur 97066595.
Ensuite passer à B6. Si B6 = LM_2, ke recherche la 1er valeur de la colonne B = LM_2, elle se trouve en B15, je renvoie en C6 la valeur de A15. A15 = 219738 donc C6 doit être = à A15
Et ainsi de suite.
B9 = LM_1 prochaine valeur = à LM_1 est en B12, valeur à renvoyer en C9 (275029) = A12(275029).
B12 = LM_1 prochaine valeur = à LM_1 est en B18, valeur à renvoyer en C12(318071) = A18(318071).
B15 = LM_2 prochaine valeur = à LM_2 est en B45, valeur à renvoyer en C15(5659) = A45(5659).
Et ainsi de suite, ...
Merci pour votre aide.
HM
Plutôt novice en VBA , j'aimerai automatiser un fichier mais je bloque sur une partie.
J'ai une formule Excel (Matricielle)sur toute une colonne, que je voudrais convertir en code.
En C3
'=IFERROR(LEFT(IF(A3="","",IFERROR(INDEX($A3:$A$100,SMALL(IF($B2:$B$100=$B2,ROW($A3:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C6
'=IFERROR(LEFT(IF(A6="","",IFERROR(INDEX($A6:$A$100,SMALL(IF($B5:$B$100=$B5,ROW($A6:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C9
=IFERROR(LEFT(IF(A9="","",IFERROR(INDEX($A9:$A$100,SMALL(IF($B8:$B$100=$B8,ROW($A9:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
En C12
'=IFERROR(LEFT(IF(A12="","",IFERROR(INDEX($A12:$A$100,SMALL(IF($B11:$B$100=$B11,ROW($A12:$A$100)-(ROW()-1)),2)),"Inconnue")),12),"")
,...
Dans la colonne "B" j’ai deux valeurs possible LM1_ ou LM_2
A partir de la 1er valeur de la colonne B, ici B3 = « LM_1 », j’aimerai recherche la 1er valeur suivante = à B3 (1er valeur = LM_1 se trouve en B9) et renvoyer en C3 la valeur de la cellule A9
A9 = 97066595. Je dois donc retrouver en A3 la valeur 97066595.
Ensuite passer à B6. Si B6 = LM_2, ke recherche la 1er valeur de la colonne B = LM_2, elle se trouve en B15, je renvoie en C6 la valeur de A15. A15 = 219738 donc C6 doit être = à A15
Et ainsi de suite.
B9 = LM_1 prochaine valeur = à LM_1 est en B12, valeur à renvoyer en C9 (275029) = A12(275029).
B12 = LM_1 prochaine valeur = à LM_1 est en B18, valeur à renvoyer en C12(318071) = A18(318071).
B15 = LM_2 prochaine valeur = à LM_2 est en B45, valeur à renvoyer en C15(5659) = A45(5659).
Et ainsi de suite, ...
Merci pour votre aide.
HM
A voir également:
- Convertir formule excel en vba
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
3 réponses
bonjour, c'est chaque fois un peu plus simple et plus fiable à faire si on peut se baser sur un fichier exemple.
yg_be
Messages postés
24281
Statut
Contributeur
1 584
je propose ceci: