J'ai une moyenne conditionnelle à faire sous VB, dont le code que j'ai fais est celui ci dessous mais celui-ci ne fonctionne pas comme je le souhaiterais, le résultat de ce code donne dans les cellules voulues par exemple =MOYENNE(SI(D8:D8<>0;D8:D8;"")) car il manque les incollades comme pour la formule excel que l'on fait avec MAJ+Ctrl+Entrée mais je ne souhaite pas revenir sur chaque cellule pour faire cette manipulation MAJ+Ctrl+Entrée. Si quelqu'un pouvait m'aider à corriger mon code s'il vous plait. Merci d'avance pour votre aide.
Sub aff_moyenne1()
j = 0
For i = 8 To 38
j = j + 1
cell_j = Cells(i, 1).Value
If cell_j = "D" Then
formule = "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1) * -1 & "]C:R[-1]C,""""))"
Cells(i, 4) = formule
Cells(i, 5) = formule
Cells(i, 6) = formule
Cells(i, 7) = formule
Cells(i, 8) = formule
Cells(i, 9) = formule
Cells(i, 11) = formule
Cells(i, 12) = formule
Cells(i, 14) = formule
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Ta question, c'est du chinois pour moi.
A ) d'abord ta formule : =MOYENNE(SI(D8:D8<>0;D8:D8;"")) Je suppose que ce ne doit pas être très difficile de faire la moyenne d'une cellule!
B ) Ce type de formule : "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1) C'est à éviter...
C ) Quelle est la formule que tu veux copier et dans quelle plage de cellules ? Utilise Range() ou Cells() ou l'adresse A1:C5 mais évite la syntaxe que tu as proposée.
"mattparisien59" a écrit dans le message de groupe de discussion : Bonjour,
J'ai une moyenne conditionnelle à faire sous VB, dont le code que j'ai fais est celui ci dessous mais celui-ci ne fonctionne pas comme je le souhaiterais, le résultat de ce code donne dans les cellules voulues par exemple =MOYENNE(SI(D8:D8<>0;D8:D8;"")) car il manque les incollades comme pour la formule excel que l'on fait avec MAJ+Ctrl+Entrée mais je ne souhaite pas revenir sur chaque cellule pour faire cette manipulation MAJ+Ctrl+Entrée. Si quelqu'un pouvait m'aider à corriger mon code s'il vous plait. Merci d'avance pour votre aide.
Sub aff_moyenne1()
j = 0
For i = 8 To 38 j = j + 1
cell_j = Cells(i, 1).Value
If cell_j = "D" Then formule = "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1) * -1 & "]C:R[-1]C,""""))" Cells(i, 4) = formule Cells(i, 5) = formule Cells(i, 6) = formule Cells(i, 7) = formule Cells(i, 8) = formule Cells(i, 9) = formule Cells(i, 11) = formule Cells(i, 12) = formule Cells(i, 14) = formule
j = 0 End If
Next
End Sub
Bonjour,
Ta question, c'est du chinois pour moi.
A ) d'abord ta formule : =MOYENNE(SI(D8:D8<>0;D8:D8;""))
Je suppose que ce ne doit pas être très difficile de faire la moyenne d'une cellule!
B ) Ce type de formule : "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1)
C'est à éviter...
C ) Quelle est la formule que tu veux copier et dans quelle plage de cellules ?
Utilise Range() ou Cells() ou l'adresse A1:C5 mais évite la syntaxe que tu as
proposée.
"mattparisien59" <nospam_mattparisien@hotmail.com> a écrit dans le message de groupe de
discussion : CaGdnbsMn7d8I3_WRVn_vwA@giganews.com...
Bonjour,
J'ai une moyenne conditionnelle à faire sous VB, dont le code que j'ai fais est
celui ci dessous mais celui-ci ne fonctionne pas comme je le souhaiterais, le
résultat de ce code donne dans les cellules voulues par exemple
=MOYENNE(SI(D8:D8<>0;D8:D8;"")) car il manque les incollades comme pour la
formule excel que l'on fait avec MAJ+Ctrl+Entrée mais je ne souhaite pas revenir
sur chaque cellule pour faire cette manipulation MAJ+Ctrl+Entrée. Si quelqu'un
pouvait m'aider à corriger mon code s'il vous plait. Merci d'avance pour votre
aide.
Sub aff_moyenne1()
j = 0
For i = 8 To 38
j = j + 1
cell_j = Cells(i, 1).Value
If cell_j = "D" Then
formule = "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1)
* -1 & "]C:R[-1]C,""""))"
Cells(i, 4) = formule
Cells(i, 5) = formule
Cells(i, 6) = formule
Cells(i, 7) = formule
Cells(i, 8) = formule
Cells(i, 9) = formule
Cells(i, 11) = formule
Cells(i, 12) = formule
Cells(i, 14) = formule
A ) d'abord ta formule : =MOYENNE(SI(D8:D8<>0;D8:D8;"")) Je suppose que ce ne doit pas être très difficile de faire la moyenne d'une cellule!
B ) Ce type de formule : "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1) C'est à éviter...
C ) Quelle est la formule que tu veux copier et dans quelle plage de cellules ? Utilise Range() ou Cells() ou l'adresse A1:C5 mais évite la syntaxe que tu as proposée.
"mattparisien59" a écrit dans le message de groupe de discussion : Bonjour,
J'ai une moyenne conditionnelle à faire sous VB, dont le code que j'ai fais est celui ci dessous mais celui-ci ne fonctionne pas comme je le souhaiterais, le résultat de ce code donne dans les cellules voulues par exemple =MOYENNE(SI(D8:D8<>0;D8:D8;"")) car il manque les incollades comme pour la formule excel que l'on fait avec MAJ+Ctrl+Entrée mais je ne souhaite pas revenir sur chaque cellule pour faire cette manipulation MAJ+Ctrl+Entrée. Si quelqu'un pouvait m'aider à corriger mon code s'il vous plait. Merci d'avance pour votre aide.
Sub aff_moyenne1()
j = 0
For i = 8 To 38 j = j + 1
cell_j = Cells(i, 1).Value
If cell_j = "D" Then formule = "=AVERAGE(IF(R[" & (j - 1) * -1 & "]C:R[-1]C<>0,R[" & (j - 1) * -1 & "]C:R[-1]C,""""))" Cells(i, 4) = formule Cells(i, 5) = formule Cells(i, 6) = formule Cells(i, 7) = formule Cells(i, 8) = formule Cells(i, 9) = formule Cells(i, 11) = formule Cells(i, 12) = formule Cells(i, 14) = formule