Syntaxe sommeprod vba

Fermé
flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020 - 28 juin 2016 à 13:20
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 - 28 juin 2016 à 16:35
Bonjour
quelqu'un peut il me dire l'erreur de synthaxe que j'ai !!
etbc, etbf, np et cc sont des variables définies

Dim spe As String
Dim np As String
Dim etbc As String
Dim etbf As String
Dim frml As String
Dim cc As String

For i = 8 To derniereligne
'affectation des valeurs
np = Cells(i, 4).Value
etbf = Cells(i, 7).Value
etbc = Cells(i, 6).Value
spe = Cells(i, 3).Value
'recherche valeur
For j = 8 To 91
cc = Cells(5, j).Value

Select Case spe
Case Is = "0-ENCADR" '("NED", "LED", "VED")
Cells(i, j).formula = "=SUMPRODUCT((""&Sheets(""Rapport48_Origine"").Range(""J:J"").Value&""=""&np&"")*(""&Sheets(""Rapport48_Origine"").Range(""AE:AE"").Value&""="&etbc&"")*(""&Sheets(""Rapport48_Origine"").Range(""AX:AX"").Value&""="&etbf&"")*(""&Sheets(""Rapport48_Origine"").Range(""AH:AH"").Value&""="&cc&"")*((""&Sheets(""Rapport48_Origine"").Range(""AW:AW"").Value&""=NED)+(""&Sheets(""Rapport48_Origine"").Range(""AW:AW"").Value&""=LED)+(""&Sheets(""Rapport48_Origine"").Range(""AW:AW"").Value&""=VED)>0)*(""&Sheets(""Rapport48_Origine"").Range(""DG:DG"").Value&""))"
Case ...
End Select
Next j
Next i

2 réponses

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 28/06/2016 à 16:14
Bonjour

Quelques remarques

R1. La fonction SOMMEPROD n'admet pas de colonnes entières "J:J", "AE:AE"
R2. Tu aurais intérêt à construire ta formule étape par étape et à la contrôler au fur et à mesure
un début (pour des plages allant de la ligne 1 à la ligne 10)

Const nomf = "Rapport48_Origine"
Dim f as string
'...
f = "=SUMPRODUCT((" & nomf & "!J1:J10=" & np & ")"
f = f & "*(" & nomf & "!AE1:AE10=" & etbc & "))"
'...
ActiveSheet.Cells(i, j).Formula = f

http://www.cjoint.com/c/FFConLrRYTu

Cdlmnt
0
flavinou7263
28 juin 2016 à 16:28
Ok merci
Et pour le multicritere avec le + et >0 comment ça se code ?
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 28/06/2016 à 16:35
Tu les intègres à leur place dans f
f = "=SUMPRODUCT((" & nomf & "!J1:J10" & np & ")"
f = f & "*(" & nomf & "!AE1:AE10=" & etbc & ")"
f = f & "+(" & nomf & "!AZ1:AZ10>0" & "))"

Cdlmnt
0