Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème avec la fonction SumIf

3 réponses
Avatar
imej-clavier
Bonjour,

Quelqu'un pourrait-il me dire ce qui ne va pas dans ma formule :
Worksheets(2).Cells(22,7).Formula = WorksheetFunction.SumIf(Range([F16], _
[F16].End(xlDown)));"VRAI";Range([B16],[B16].End(xlDown)))
J'ai la boite de dialogue suivante : Attendu : séparateur de liste ou ]

Merci d'avance,


Jean-michel

3 réponses

Avatar
Pierre CFI [mvp]
bonjour
tu as une ) de trop
mais pourquoi Formula ? cette fonction retourne une valeur
Worksheets(2).Cells(22,7)= WorksheetFunction.SumIf(Range([F16], _
[F16].End(xlDown));"VRAI";Range([B16],[B16].End(xlDown)))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"imej-clavier" a écrit dans le message de news:%
Bonjour,

Quelqu'un pourrait-il me dire ce qui ne va pas dans ma formule :
Worksheets(2).Cells(22,7).Formula = WorksheetFunction.SumIf(Range([F16], _
[F16].End(xlDown)));"VRAI";Range([B16],[B16].End(xlDown)))
J'ai la boite de dialogue suivante : Attendu : séparateur de liste ou ]

Merci d'avance,


Jean-michel




Avatar
Rai
Bonjour,

Si c'est la formule que tu veux inscrire dans ta cellule, comme le laisse à penser le .formula, essaie le code suivant
(à tester, je l'ia fait "de mémoire" sans valider par Excel)

WorkSheets(2).Cells(22,7).Formula="=somme.si(F16:F" & [F16].End(xlDown).Row & ";Vrai,B16:B" & [B16].End(xlDown).Row & ")"


Bonne soirée

Rai


"imej-clavier" a écrit dans le message de news: %
Bonjour,

Quelqu'un pourrait-il me dire ce qui ne va pas dans ma formule :
Worksheets(2).Cells(22,7).Formula = WorksheetFunction.SumIf(Range([F16], _
[F16].End(xlDown)));"VRAI";Range([B16],[B16].End(xlDown)))
J'ai la boite de dialogue suivante : Attendu : séparateur de liste ou ]

Merci d'avance,


Jean-michel




Avatar
AV
Quelqu'un pourrait-il me dire ce qui ne va pas dans ma formule :


La 1° chose qui va pas c'est que aucune des réponses aux questions que tu as
posé sur ce forum n'a été suivie d'un quelconqie signe de vie ;-)
Ceci étant...les autres trucs qui ne vont pas :
* Présence de point-virgules au lieu de virgules
* Une parenthèse de trop
* Traduction incomplète en anglais : "VRAI" à remplacer par "TRUE"

Correction :
Worksheets(2).Cells(22, 7).Formula = WorksheetFunction.SumIf(Range([F16], _
[F16].End(xlDown)), "TRUE", Range([B16], [B16].End(xlDown)))

Autre formulation (plus souhaitable(dernière ligne)) :
x = [B65536].End(xlUp).Row
Worksheets(2).Cells(22, 7) = Application.SumIf(Range("F16:F" & x), "TRUE",
Range("B16:B" & x))

Autre, si tu es sur qu'il n'y a aura pas de cellules vides (ce que laisse
supposer le End(xlDown) !)
Insertion > nom > définir >
plageB : ÞCALER(Feuil1!$B$16;;;NBVAL(Feuil1!$B$16:$B$65536))
plageF : ÞCALER(Feuil1!$F$16;;;NBVAL(Feuil1!$F$16:$F$65536))

Ton code devient alors
Worksheets(2).Cells(22, 7) = [sumif(plageF,"true",plageB)]

AV