traduire en vba

T

tail

Guest
bonjour
je cherche ,je cherche mais je ne trouve pas
merci de votre aide
j'aimerai traduire la formule suivante en vba

merci
=SI(ET(RECHERCHEV($D$4;Spécialités!$B$2:$U69;7)='O';F$4='G');1;0)

merci de m'expliquer comment faire
 

bertgrav

XLDnaute Occasionnel
bonjour,

j'ai vu qu'il y avait une erreur avec le RECHERCHEV car dans la premiére case nous aurions dû avoir 2 en réponse.

Range('E13').Select
ActiveCell.FormulaR1C1 = _
'=IF(AND(VLOOKUP(R5C4,Spécialités!R2C2:R70C21,8,FALSE)=''o'',OR(R[-8]C=''G'',R[-8]C=''j'',R[-8]C=''shc'',R[-8]C=''s8 '',R[-8]C=''s10'',R[-8]C=''s11'',R[-8]C=''s12'',R[-8]C=''sh'')),1,0) + IF(AND(VLOOKUP(R6C4,Spécialités!R2C2:R70C21,8,FALSE)=''o'',OR(R[-7]C=''G'',R[-7]C=''j'',R[-7]C=''shc'',R[-7]C=''s8 '',R[-7]C=''s10'',R[-7]C=''s11'',R[-7]C=''s12'',R[-7]C=''sh'')),1,0)'
Range('E13').Select
Selection.AutoFill Destination:=Range('E13:AI13'), Type:=xlFillDefault
Range('E13:AI13').Select

pour ce qui concerne le reste: dur dur il faut passer par une autre façon de concevoir la macro.

chantal
 
B

bertgrav

Guest
re bonsoir,
tout d'abord ton tableau devrait commencer bien plus loin car si tu avais 50 noms, la ligne 10 serait en réalité la ligne 60, donc la cellule E13 serait en réalité E63

il faudrait que tu demandes de l'aide pour faire une sorte de bouclage...
ton premier pb est que tu dois faire sur la cellule E63 écrire ceci:



=SI(ET(RECHERCHEV($D$5;Spécialités!$B$2:$U$70;8;FAUX)='o';OU(E5='G';E5='j';E5='shc';E5='s8 ';E5='s10';E5='s11';E5='s12';E5='sh'));1;0) + SI(ET(RECHERCHEV($D$6;Spécialités!$B$2:$U$70;8;FAUX)='o';OU(E6='G';E6='j';E6='shc';E6='s8 ';E6='s10';E6='s11';E6='s12';E6='sh'));1;0) + .......SI(ET(RECHERCHEV($D$55;Spécialités!$B$2:$U$70;8;FAUX)='o';OU(E55='G';E55='j';E55='shc';E55='s8 ';E55='s10';E55='s11';E55='s12';E55='sh'));1;0)

Je te conseille de demander de l'aide pour avoir une variable qui aille de 5 à 55.
exemple demander de faire une macro qui fais
=a5+a6+a7+....+a55
c'est à dire en VBA
ActiveCell.FormulaR1C1 = Range('a5') + Range('a6') + Range('a7') + .......Range('a55')
et comment faire pour ne pas se taper les 50 termes...


amicalement

chantal
 

Discussions similaires

Statistiques des forums

Discussions
312 343
Messages
2 087 438
Membres
103 546
dernier inscrit
mohamed tano