J'utilise SOMMEPROD pour faire des calculs mutlicrit=E9res qui
fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice
=E0 chaque fois que je sors des dimensions de la matrices d=E9clar=E9.
Auriez vous une solution pour =E9viter ce r=E9ajustement manuel d=E9s que j=
e
d=E9passe les 500 lignes ? Aussi pour des rapidit=E9s de calcul, je n'opte
pas pour =E9tendre la formule jusqu'=E0 65000 lignes.
Exemple :
=3DSOMMEPROD((B4=3DSORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas :
=3DSOMMEPROD(B4=3DSORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D
$&NBVAL(SORTIE!D:D))
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,
Une façon de faire :
Mettre cette procédure dans le module feuille "Sortie" À chaque fois que tu vas saisir une nouvelle ligne de données les 2 noms "toto" et "titi" vont se mettre à jour.
Dans ta formule, tu remplaces les plages de cellules par toto et titi Évidemment, tu peux donner des noms plus explicites à tes plages nommées. Exemple : =SOMMEPROD((B4=toto)*titi)
'----------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim DerLig As Long If Not Intersect(Union(Range("D:D"), Range("K:K")), Target) Is Nothing Then DerLig = Range("D:D,K:K").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row
Range("D2:D" & DerLig).Name = "toto" Range("K2:K" & DerLig).Name = "titi" End If End Sub '-----------------------------------
Une autre façon est d'utiliser la fonction "Decaler" pour définir tes 2 plages nommées et encore une fois, utiliser ces "noms" dans tes formules.
"ysalut" a écrit dans le message de groupe de discussion :
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice à chaque fois que je sors des dimensions de la matrices déclaré. Auriez vous une solution pour éviter ce réajustement manuel dés que je dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte pas pour étendre la formule jusqu'à 65000 lignes.
Exemple : =SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas : =SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D $&NBVAL(SORTIE!D:D))
Merci d'avance
Bonjour,
Une façon de faire :
Mettre cette procédure dans le module feuille "Sortie"
À chaque fois que tu vas saisir une nouvelle ligne de données
les 2 noms "toto" et "titi" vont se mettre à jour.
Dans ta formule, tu remplaces les plages de cellules par toto et titi
Évidemment, tu peux donner des noms plus explicites à tes plages nommées.
Exemple :
=SOMMEPROD((B4=toto)*titi)
'-----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
If Not Intersect(Union(Range("D:D"), Range("K:K")), Target) Is Nothing Then
DerLig = Range("D:D,K:K").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Range("D2:D" & DerLig).Name = "toto"
Range("K2:K" & DerLig).Name = "titi"
End If
End Sub
'-----------------------------------
Une autre façon est d'utiliser la fonction "Decaler" pour définir
tes 2 plages nommées et encore une fois, utiliser ces "noms"
dans tes formules.
"ysalut" <youri.salut@gmail.com> a écrit dans le message de groupe de discussion :
8b3d17af-ce1e-4a93-92ec-29c5c879fc65@u9g2000yqb.googlegroups.com...
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui
fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice
à chaque fois que je sors des dimensions de la matrices déclaré.
Auriez vous une solution pour éviter ce réajustement manuel dés que je
dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte
pas pour étendre la formule jusqu'à 65000 lignes.
Exemple :
=SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas :
=SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D
$&NBVAL(SORTIE!D:D))
Mettre cette procédure dans le module feuille "Sortie" À chaque fois que tu vas saisir une nouvelle ligne de données les 2 noms "toto" et "titi" vont se mettre à jour.
Dans ta formule, tu remplaces les plages de cellules par toto et titi Évidemment, tu peux donner des noms plus explicites à tes plages nommées. Exemple : =SOMMEPROD((B4=toto)*titi)
'----------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim DerLig As Long If Not Intersect(Union(Range("D:D"), Range("K:K")), Target) Is Nothing Then DerLig = Range("D:D,K:K").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row
Range("D2:D" & DerLig).Name = "toto" Range("K2:K" & DerLig).Name = "titi" End If End Sub '-----------------------------------
Une autre façon est d'utiliser la fonction "Decaler" pour définir tes 2 plages nommées et encore une fois, utiliser ces "noms" dans tes formules.
"ysalut" a écrit dans le message de groupe de discussion :
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice à chaque fois que je sors des dimensions de la matrices déclaré. Auriez vous une solution pour éviter ce réajustement manuel dés que je dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte pas pour étendre la formule jusqu'à 65000 lignes.
Exemple : =SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas : =SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D $&NBVAL(SORTIE!D:D))
Merci d'avance
Patrick
Bonjour,
Voici quelques solutions : - Soit tu utilises des noms de plage de cellules (à mon avis c'est le plus efficace masi il faut que tu mettes à jour la référence des noms). - Soit tu utilises la fonction INDIRECT =SOMMEPROD(B4=INDIRECT("SORTIE!$K$2:$K$"&NBVAL(SORTIE!K:K))*INDIRECT("SORTIE!$D$2:$D
$"&NBVAL(SORTIE!D:D)))
Cordialement.
-- Patrick
"ysalut" wrote:
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice à chaque fois que je sors des dimensions de la matrices déclaré. Auriez vous une solution pour éviter ce réajustement manuel dés que je dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte pas pour étendre la formule jusqu'à 65000 lignes.
Exemple : =SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas : =SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D $&NBVAL(SORTIE!D:D))
Merci d'avance .
Bonjour,
Voici quelques solutions :
- Soit tu utilises des noms de plage de cellules (à mon avis c'est le plus
efficace masi il faut que tu mettes à jour la référence des noms).
- Soit tu utilises la fonction INDIRECT
=SOMMEPROD(B4=INDIRECT("SORTIE!$K$2:$K$"&NBVAL(SORTIE!K:K))*INDIRECT("SORTIE!$D$2:$D
$"&NBVAL(SORTIE!D:D)))
Cordialement.
--
Patrick
"ysalut" wrote:
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui
fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice
à chaque fois que je sors des dimensions de la matrices déclaré.
Auriez vous une solution pour éviter ce réajustement manuel dés que je
dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte
pas pour étendre la formule jusqu'à 65000 lignes.
Exemple :
=SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas :
=SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D
$&NBVAL(SORTIE!D:D))
Voici quelques solutions : - Soit tu utilises des noms de plage de cellules (à mon avis c'est le plus efficace masi il faut que tu mettes à jour la référence des noms). - Soit tu utilises la fonction INDIRECT =SOMMEPROD(B4=INDIRECT("SORTIE!$K$2:$K$"&NBVAL(SORTIE!K:K))*INDIRECT("SORTIE!$D$2:$D
$"&NBVAL(SORTIE!D:D)))
Cordialement.
-- Patrick
"ysalut" wrote:
Bonjour,
J'utilise SOMMEPROD pour faire des calculs mutlicritéres qui fonctionne bien, mais je voudrais ne pas avoir a prolonger ma matrice à chaque fois que je sors des dimensions de la matrices déclaré. Auriez vous une solution pour éviter ce réajustement manuel dés que je dépasse les 500 lignes ? Aussi pour des rapidités de calcul, je n'opte pas pour étendre la formule jusqu'à 65000 lignes.
Exemple : =SOMMEPROD((B4=SORTIE!$K$2:$K$500)*SORTIE!$D$2:$D$500)
Mais cela ne parche pas : =SOMMEPROD(B4=SORTIE!$K$2:$K$&NBVAL(SORTIE!K:K))*SORTIE!$D$2:$D $&NBVAL(SORTIE!D:D))