Je souhaiterai faire le calcul suivant dans une plage variable :
additionner les montants en colonne J seulement si sur la même ligne, en
colonne H se trouve le mot "MONTANT"
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 Pierre,
Il y a ceci ... en adaptant les plages de cellules.
=SOMMEPROD((H1:H10="MONTANT")*(J1:J10))
Et si tu veux que la plage se mette à jour automatiquement, copie ce qui suit dans la feuille de code où l'action se déroule.
J'ai choisi le résultat C1 pour recevoir le résultat : à adapter ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub '-------------------------------------------------
Salutations!
"Pierre" a écrit dans le message de news:BD6A004E.28781% Bonjour,
Je souhaiterai faire le calcul suivant dans une plage variable : additionner les montants en colonne J seulement si sur la même ligne, en colonne H se trouve le mot "MONTANT"
Merci à tous. Pierre
Bonjour Pierre,
Il y a ceci ... en adaptant les plages de cellules.
=SOMMEPROD((H1:H10="MONTANT")*(J1:J10))
Et si tu veux que la plage se mette à jour automatiquement, copie ce qui suit dans la feuille de code où l'action se
déroule.
J'ai choisi le résultat C1 pour recevoir le résultat : à adapter
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu
débutes alors les formules par H2 et J2
'-------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))"
Application.EnableEvents = True
End If
End Sub
'-------------------------------------------------
Salutations!
"Pierre" <Pierre@Pierre.free.fr> a écrit dans le message de news:BD6A004E.28781%Pierre@Pierre.free.fr...
Bonjour,
Je souhaiterai faire le calcul suivant dans une plage variable :
additionner les montants en colonne J seulement si sur la même ligne, en
colonne H se trouve le mot "MONTANT"
Il y a ceci ... en adaptant les plages de cellules.
=SOMMEPROD((H1:H10="MONTANT")*(J1:J10))
Et si tu veux que la plage se mette à jour automatiquement, copie ce qui suit dans la feuille de code où l'action se déroule.
J'ai choisi le résultat C1 pour recevoir le résultat : à adapter ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub '-------------------------------------------------
Salutations!
"Pierre" a écrit dans le message de news:BD6A004E.28781% Bonjour,
Je souhaiterai faire le calcul suivant dans une plage variable : additionner les montants en colonne J seulement si sur la même ligne, en colonne H se trouve le mot "MONTANT"
Merci à tous. Pierre
Pierre
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre
dans l'article uhyADmMmEHA.3496@TK2MSFTNGP12.phx.gbl, michdenis à
michdenis@hotmail.com a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de
la plage définie dans la formule. Tu
débutes alors les formules par H2 et J2
'-------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing
Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" &
derlig & " ))"
Application.EnableEvents = True
End If
End Sub
Bonjour,
J'ai intégré par copier/coller le code tel quel (en modifiant la formule en
H2 et J2 (Bien vu !!!) )
J'obtiens un message d'erreur :
Erreur de compilation
End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre
Pierre
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur : "Erreur d'exécution Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée. Salutations Pierre
dans l'article uhyADmMmEHA.3496@TK2MSFTNGP12.phx.gbl, michdenis à
michdenis@hotmail.com a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti
de
la plage définie dans la formule. Tu
débutes alors les formules par H2 et J2
'-------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing
Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" &
derlig & " ))"
Application.EnableEvents = True
End If
End Sub
Bonjour,
J'ai intégré par copier/coller le code tel quel (en modifiant la formule en
H2 et J2 (Bien vu !!!) )
J'obtiens un message d'erreur :
Erreur de compilation
End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous?
merci
Pierre
J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur :
"Erreur d'exécution
Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée.
Salutations
Pierre
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur : "Erreur d'exécution Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée. Salutations Pierre
michdenis
Bonjour Pierre,
Voici un autre copier-coller :
La ligne if not intersect ... se termine après Then ... il se peut que le service de messagerie coupe de façon inopportune certaines lignes de code.
Je ne peut pas reproduire le type d'erreur que tu observes ! '----------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub '-----------------------
Salutations!
"Pierre" a écrit dans le message de news:BD6A3FB3.287AC%
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur : "Erreur d'exécution Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée. Salutations Pierre
Bonjour Pierre,
Voici un autre copier-coller :
La ligne if not intersect ... se termine après Then ... il se peut que le service de messagerie coupe de façon
inopportune certaines lignes de code.
Je ne peut pas reproduire le type d'erreur que tu observes !
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))"
Application.EnableEvents = True
End If
End Sub
'-----------------------
Salutations!
"Pierre" <Pierre@Pierre.free.fr> a écrit dans le message de news:BD6A3FB3.287AC%Pierre@Pierre.free.fr...
dans l'article uhyADmMmEHA.3496@TK2MSFTNGP12.phx.gbl, michdenis à
michdenis@hotmail.com a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti
de
la plage définie dans la formule. Tu
débutes alors les formules par H2 et J2
'-------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing
Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" &
derlig & " ))"
Application.EnableEvents = True
End If
End Sub
Bonjour,
J'ai intégré par copier/coller le code tel quel (en modifiant la formule en
H2 et J2 (Bien vu !!!) )
J'obtiens un message d'erreur :
Erreur de compilation
End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous?
merci
Pierre
J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur :
"Erreur d'exécution
Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée.
Salutations
Pierre
La ligne if not intersect ... se termine après Then ... il se peut que le service de messagerie coupe de façon inopportune certaines lignes de code.
Je ne peut pas reproduire le type d'erreur que tu observes ! '----------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub '-----------------------
Salutations!
"Pierre" a écrit dans le message de news:BD6A3FB3.287AC%
dans l'article , michdenis à a écrit le 12/09/04 15:08 :
ATTENTION : Si tes colonnes ont une étiquette, elle ne doit pas faire parti de la plage définie dans la formule. Tu débutes alors les formules par H2 et J2 '------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If
End Sub
Bonjour, J'ai intégré par copier/coller le code tel quel (en modifiant la formule en H2 et J2 (Bien vu !!!) ) J'obtiens un message d'erreur : Erreur de compilation End Sub attendu
et la ligne avant la première ligne de votre code est surlignée.
Qu'en pensez-vous? merci Pierre J'ai oublié de vous préciser que si je désactive la première ligne de votre
code j'obtiens aussi un message d'erreur : "Erreur d'exécution Objet requis
et c'est la ligne "If not Intersect(............... " qui est surlignée. Salutations Pierre
Pierre
dans l'article , michdenis à a écrit le 12/09/04 19:08 :
Bonsoir, non, j'ai bien fait attention lors du copier/coller de ne pas couper les lignes de code. Je ne comprends pas d'ou peut provenir ces messages d'erreur. Je vais y réfléchir dans la soirée. Merci quand même. Pierre
Bonjour Pierre, Voici un autre copier-coller : La ligne if not intersect ... se termine après Then ... il se peut que le service de messagerie coupe de façon inopportune certaines lignes de code. Je ne peut pas reproduire le type d'erreur que tu observes ! '----------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If End Sub '-----------------------
dans l'article OzjXPsOmEHA.3340@TK2MSFTNGP14.phx.gbl, michdenis à
michdenis@hotmail.com a écrit le 12/09/04 19:08 :
Bonsoir,
non, j'ai bien fait attention lors du copier/coller de ne pas couper les
lignes de code.
Je ne comprends pas d'ou peut provenir ces messages d'erreur.
Je vais y réfléchir dans la soirée.
Merci quand même.
Pierre
Bonjour Pierre,
Voici un autre copier-coller :
La ligne if not intersect ... se termine après Then ... il se peut que le
service de messagerie coupe de façon
inopportune certaines lignes de code.
Je ne peut pas reproduire le type d'erreur que tu observes !
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing
Then
derlig = Range("J65536").End(xlUp).Row
Application.EnableEvents = False
Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" &
derlig & " ))"
Application.EnableEvents = True
End If
End Sub
'-----------------------
dans l'article , michdenis à a écrit le 12/09/04 19:08 :
Bonsoir, non, j'ai bien fait attention lors du copier/coller de ne pas couper les lignes de code. Je ne comprends pas d'ou peut provenir ces messages d'erreur. Je vais y réfléchir dans la soirée. Merci quand même. Pierre
Bonjour Pierre, Voici un autre copier-coller : La ligne if not intersect ... se termine après Then ... il se peut que le service de messagerie coupe de façon inopportune certaines lignes de code. Je ne peut pas reproduire le type d'erreur que tu observes ! '----------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Union(Columns("J:J"), Columns("H:H"))) Is Nothing Then derlig = Range("J65536").End(xlUp).Row Application.EnableEvents = False Range("C1").Formula = "=sumProduct((H1:H" & derlig & "=""MONTANT"")*(J1:J" & derlig & " ))" Application.EnableEvents = True End If End Sub '-----------------------