execution automatique d'une macro

Le
vladtepes
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné par la macro le calcul se fasse automatiquement. Faut t'il rajouter une commande dans la macro ou faut t'il faire une combinaison de touche a chaque fois que je rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Charabeuh
Le #18893901
Bonsoir,

Mettre cette formule dans la cellule "I4"

=SOMME(SI(MODE(LIGNE($B$11:$B$1031)-11;20)=0;$B$11:$B$1031;""))

Validez cette formule par les touches Ctrl+Shift+Entrée (formule
matricielle)
La somme se mettra automatiquement à jour.

Salut



"vladtepes" news:
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une commande
dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.


Charabeuh
Le #18894331
Correction !!!!

je n'avais pas vu qu'il y avait deux feuilles.

Mettre cette formule dans la cellule "I4" de la feuille "synthese"

=SOMME(SI(MOD(LIGNE(Gwen!$B$11:$B$1031)-11;20)=0;Gwen!$B$11:$B$1031;""))

Validez cette formule par les touches Ctrl+Shift+Entrée (formule
matricielle)
La somme se mettra automatiquement à jour.

Salut





"Charabeuh" news:
Bonsoir,

Mettre cette formule dans la cellule "I4"

=SOMME(SI(MODE(LIGNE($B$11:$B$1031)-11;20)=0;$B$11:$B$1031;""))

Validez cette formule par les touches Ctrl+Shift+Entrée (formule
matricielle)
La somme se mettra automatiquement à jour.

Salut



"vladtepes" news:
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une commande
dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que
je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.





Daniel.C
Le #18894321
Bonjour.
Mets le code suivant dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B11:B1031]) Is Nothing Then Exit Sub
For a = 11 To 1031 Step 20
If IsNumeric(Range("B" & a)) Then
Somme = Somme + Range("B" & a)
End If
Next
Worksheets("synthese").Range("I4").Value = Somme
End Sub

Daniel

Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
elle fonctionne bien mais quand je change la valeur d'une des cellules
calculées la valeur de la macro ne change pas.
Je voudrais savoir comment faire pour que la macro calcule automatiquement le
total quand je change la valeur d'une des cellules.
Je vous remercie d'avance pour vos reponses


Mishell
Le #18894311
Bonjour.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Call Faire_La_Somme
End Sub

Mishell

"vladtepes" news:
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une commande
dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.


Jacky
Le #18894591
Bonsoir,

Sans VBA
En feuille synthese cellule I4
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
--
Salutations
JJ


"vladtepes"
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une commande
dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.


Mishell
Le #18900211
Cette formule
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
peut être simplifiée ainsi et aussi permettre l'insertion et la suppression
de lignes sur la feuille sans devoir modifier la formule:
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)=LIGNE(B11))*Gwen!B11:B1031)

Salutatins

Mishell


"Jacky" news:
Bonsoir,

Sans VBA
En feuille synthese cellule I4
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
--
Salutations
JJ


"vladtepes"
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une commande
dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que
je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.






Charabeuh
Le #18900451
Bjr,

Il me semble que sommeprod renvoie une erreur si un des termes de la somme
est de type caractère...
ex [B11] = "AAA" (d'où le "If IsNumeric...." dans le code VBA)

Je me suis "fait eu" plusieurs fois suite à des importations de fichier .CSV
avec des lignes parasites.

N'est-il pas ?

Slt



"Mishell" news:%
Cette formule
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
peut être simplifiée ainsi et aussi permettre l'insertion et la
suppression de lignes sur la feuille sans devoir modifier la formule:
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)=LIGNE(B11))*Gwen!B11:B1031)

Salutatins

Mishell


"Jacky" news:
Bonsoir,

Sans VBA
En feuille synthese cellule I4
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
--
Salutations
JJ


"vladtepes"
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules concerné
par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une
commande dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que
je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.










Modeste
Le #18900661
Bonsour® Charabeuh avec ferveur ;o))) vous nous disiez :

Il *me semble* que sommeprod renvoie une erreur si un des termes de la
somme est de type caractère...



c'est qu'un des termes de la matrice renvoie déja une erreur !!!!

;o)))
a.. SOMMEPROD affecte aux entrées de matrice non numériques la valeur zéro.
Jacky
Le #18900941
Bonjour,
Il me semble que sommeprod renvoie une erreur si un des termes de la somme
est de type caractère...


L'erreur peut-être annulée par cette modif .
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*1;(Gwen!B11:B1031))
--
Salutations
JJ


"Charabeuh"
Bjr,

Il me semble que sommeprod renvoie une erreur si un des termes de la somme
est de type caractère...
ex [B11] = "AAA" (d'où le "If IsNumeric...." dans le code VBA)

Je me suis "fait eu" plusieurs fois suite à des importations de fichier
.CSV avec des lignes parasites.

N'est-il pas ?

Slt



"Mishell" news:%
Cette formule
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
peut être simplifiée ainsi et aussi permettre l'insertion et la
suppression de lignes sur la feuille sans devoir modifier la formule:
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)=LIGNE(B11))*Gwen!B11:B1031)

Salutatins

Mishell


"Jacky" news:
Bonsoir,

Sans VBA
En feuille synthese cellule I4
=SOMMEPROD((MOD(LIGNE(Gwen!B11:B1031);20)-10=1)*Gwen!B11:B1031)
--
Salutations
JJ


"vladtepes"
Bonjour,
J'ai cette macro dans un classeur excel:
Sub Faire_La_Somme()

With Worksheets("Gwen")
For a = 11 To 1031 Step 20
If IsNumeric(.Range("B" & a)) Then
somme = somme + .Range("B" & a)
End If
Next
End With
Worksheets("synthese").Range("I4").value = Somme

End Sub
et je voudrais que quand je change la valeur d'une des cellules
concerné par la
macro le calcul se fasse automatiquement. Faut t'il rajouter une
commande dans
la macro ou faut t'il faire une combinaison de touche a chaque fois que
je
rentre une valeur dans une de ces cases?
Je vous remercie d'avance pour reponses.













Charabeuh
Le #18901061
Bonjoir Modeste !

J'ai testé (sous Excel 2007):

Soit le tableau de deux colonne A,B :
a 1
b 1
a aaa
b 1
c 1
a 1

I) la formule : =SOMMEPROD((A1:A6="a")*B1:B6)
me donne l'erreur #VALEUR!

II) la formule : =SOMMEPROD(--(A1:A6="a");B1:B6)
me donne la valeur 2

Il semblerait que les valeurs texte ne soient pas pris en compte uniquement
dans la forme II de sommeprod.

Confirmes-tu ? (je n'ai pas testé sous 2003)

A+



"Modeste" news:%
Bonsour® Charabeuh avec ferveur ;o))) vous nous disiez :

Il *me semble* que sommeprod renvoie une erreur si un des termes de la
somme est de type caractère...



c'est qu'un des termes de la matrice renvoie déja une erreur !!!!

;o)))
a.. SOMMEPROD affecte aux entrées de matrice non numériques la valeur zéro.
Publicité
Poster une réponse
Anonyme