formule en vba

Le
magic-dd
bonsoir
j'ai un classeur avec 18 feuilles structurées de la meme facon

dans des memes cellules de x6 à x38 j'ai cette formule

=SI(NBCAR(B6)=0;"";(SOMME(D6:H6)*20)/25)

en changeant le b6 par "b" & i, d6 par "d" & i et "h" & i

ensuite j'ai une matricielle

de z6 à z38

{=SI(OU(NBCAR(B6)=0;NB(N6:T6)=0);"";SOMME(SI(ESTNUM(N6:T6);N6:T6*$N
$5:$T$5))/SOMME.SI(N6:T6;">=0";$N$5:$T$5))}

la aussi tout ce qui n'est pas entre les $ peut etre fais avec la
valeur "b" & i etc..

merci de votre aide ca permettra de rendre plus rapide mon programme
et surtout moins lourd.


@bientot
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #5224941
bonjour magic,

c'est une formule sur la feuille ou c'est en vba ?

isabelle

bonsoir
j'ai un classeur avec 18 feuilles structurées de la meme facon

dans des memes cellules de x6 à x38 j'ai cette formule

=SI(NBCAR(B6)=0;"";(SOMME(D6:H6)*20)/25)

en changeant le b6 par "b" & i, d6 par "d" & i et "h" & i

ensuite j'ai une matricielle

de z6 à z38

{=SI(OU(NBCAR(B6)=0;NB(N6:T6)=0);"";SOMME(SI(ESTNUM(N6:T6);N6:T6*$N
$5:$T$5))/SOMME.SI(N6:T6;">=0";$N$5:$T$5))}

la aussi tout ce qui n'est pas entre les $ peut etre fais avec la
valeur "b" & i etc.....

merci de votre aide ca permettra de rendre plus rapide mon programme
et surtout moins lourd.


@bientot


magic-dd
Le #5224561
bonjour isabelle

cette formule est sur ma feuille

en fait je ne voudrais plus de formule sur la feuille mais a chaque
changement dans ma feuille avoir la macro qui se declenche

merci
isabelle
Le #5224511
bonjour magic,

Private Sub Worksheet_Change(ByVal Target As Range)
lig = Target.Row
Range("X" & lig).Formula = "=SI(NBCAR(" & Cells(lig, 2).Address & ")=0,"""",(SOMME(" & Range(Cells(lig, 4), Cells(lig, 7)).Address & ")*20)/25)"
End Sub

isabelle

bonjour isabelle

cette formule est sur ma feuille

en fait je ne voudrais plus de formule sur la feuille mais a chaque
changement dans ma feuille avoir la macro qui se declenche

merci


isabelle
Le #5224501
correction :

Private Sub Worksheet_Change(ByVal Target As Range)
lig = Target.Row
Range("X" & lig).Formula = "=IF(LEN(" & Cells(lig, "B").Address & ")=0,"""",(SUM(" & Range(Cells(lig, "D"), Cells(lig, "H")).Address & ")*20)/25)"
End Sub
isabelle

bonjour isabelle

cette formule est sur ma feuille

en fait je ne voudrais plus de formule sur la feuille mais a chaque
changement dans ma feuille avoir la macro qui se declenche

merci


magic-dd
Le #5224341
merci isabelle mais j'ai une erreur 1004

erreur definie par l'application ou l'objet


je ne comprends pas car d'habitude tout ce que tu me depanne
fonctionne parfaitemement.

j'attends donc à nouveau ton aide
isabelle
Le #5224191
bonjour magic,

cette erreur en est une assez général, difficile à cerner
si tu peut, dépose ton fichier ici :

http://www.cjoint.com

et reviens donner ici le lien de téléchargement que le site va générer.
je pourrai alors le télécharger et regarder de plus pret.

isabelle

merci isabelle mais j'ai une erreur 1004

erreur definie par l'application ou l'objet


je ne comprends pas car d'habitude tout ce que tu me depanne
fonctionne parfaitemement.

j'attends donc à nouveau ton aide




magic-dd
Le #5224121
salut

je te joint le fichier enfin une partie car celui ci pese 2 mo

mes autres feuilles ont exactement la meme structure que celle ci donc
j'adapterai.

merci encore par avance

http://cjoint.com/?dvhF68yyNS
isabelle
Le #5223801
bonjour magic,

j'ai fais un premier essai pour la transformation des formules des colonnes X, Y, Z, AA, AB , AC
dit moi si ça va bien comme ça,
http://cjoint.com/?dvnMpxA4zO

Sub Macro1()
lig = 7 'choix du numéro de ligne
Range("X" & lig) = Evaluate("(IF(LEN(B" & lig & ")=0,"""",SUM(D" & lig & ":H" & lig & ") * 20) / 25)")

Range("Y" & lig) = Evaluate("(IF(LEN(B" & lig & ")=0,"""",SUM(I" & lig & ":M" & lig & ") * 20) / 25)")

p1 = Range("N" & lig & ":T" & lig).Address
p2 = Range("N5:T5").Address
Range("Z" & lig) = Evaluate("IF(OR(LEN(B" & lig & ")=0,COUNT(" & p1 & ")=0),"""",SUM(IF(ISNUMBER(" & p1 & ")," & p1 & "*" & p2 & "))/SUMIF(" & p1 & ","">=0""," & p2 & "))")

p3 = Range("U" & lig & ":V" & lig).Address
p4 = Range("U5:V5").Address
Range("AA" & lig) = Evaluate("IF(OR(LEN(B" & lig & ")=0,COUNT(" & p3 & ")=0),"""",SUM(IF(ISNUMBER(" & p3 & ")," & p3 & "*" & p4 & "))/SUMIF(" & p3 & ","">=0""," & p4 & "))")

p5 = Range("W" & lig & ":AA" & lig).Address
p6 = Range("W5:AA5").Address
Range("AB" & lig) = Evaluate("IF(OR(LEN(B" & lig & ")=0,COUNT(" & p5 & ")=0),"""",SUM(IF(ISNUMBER(" & p5 & ")," & p5 & "*" & p6 & "))/SUMIF(" & p5 & ","">=0""," & p6 & "))")

Range("AC" & lig) = Evaluate("IF(OR(LEN(B" & lig & ")=0,COUNT(" & Range("D" & lig & ":AA" & lig).Address & ")=0),"""",RANK(AD" & lig & ",AD6:AD38))")

End Sub


isabelle

salut

je te joint le fichier enfin une partie car celui ci pese 2 mo

mes autres feuilles ont exactement la meme structure que celle ci donc
j'adapterai.

merci encore par avance

http://cjoint.com/?dvhF68yyNS


magic-dd
Le #5332181
Bonsoir isabelle

un grand merci car cela correspond dans un premier temps à ce que je
voulais.

cependant tu as écris lig = 7 pour la ligne 7 ok

j'ai fais une boucle genre for lig =6 to 38 etc etc

je trouve que la procédure est longue

pour les autres formules a traduire, ça sera en colonne AD,
AF ,AG ,AH ,AI ,AK

Sinon déjà un très grand bravo

merci tout plein
isabelle
Le #5332101
bonjour magic,

voici les autres formules :

http://cjoint.com/?dvw7JXQg5H

isabelle

Bonsoir isabelle

un grand merci car cela correspond dans un premier temps à ce que je
voulais.

cependant tu as écris lig = 7 pour la ligne 7 ok

j'ai fais une boucle genre for lig =6 to 38 etc etc

je trouve que la procédure est longue

pour les autres formules a traduire, ça sera en colonne AD,
AF ,AG ,AH ,AI ,AK

Sinon déjà un très grand bravo

merci tout plein






Publicité
Poster une réponse
Anonyme