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

sommeprod avec array

11 réponses
Avatar
stefdestroy
Bonjour tout le monde,

Par curiosit=E9 je me demandais s'il =E9tait possible d'utiliser des foncti=
ons telles que nb.si, Sommeprod etc. sur des variables tableaux en VBA.

Par exemple, j'ai un tableau Excel avec des codes et une valeur :
ColA ColB
A 1
A 2
B 3
B 4
B 5
C 6
C 7
D 8
D 9
D 10


Ces lignes fonctionnent :
a =3D Range("A1:B10").Value
MsgBox Application.Sum(Application.Index(a, , 2)) 'somme 2i=E8me col
MsgBox Application.CountA(Application.Index(a, , 2)) 'compte nb valeurs 2i=
=E8me col
MsgBox Application.Match(5, Application.Index(a, , 2), 0) 'Recherche
=20

En revanche, je n'y arrive pas avec celles-ci :
MsgBox Application.CountIf(Application.Index(a, , 2), ">=3D10")
MsgBox Application.SumProduct((Application.Index(a, , 1) =3D "A") * (Applic=
ation.Index(a, , 2)))

Peut-=EAtre n'est-ce pas possible !
Aucune urgence ! C'est juste pour ma culture personnelle :-)

Merci
Steph

1 réponse

1 2
Avatar
stephD
Bonjour Isa,

Merci tout plein, ca marche bien comme ceci, j'ai encore appris plein de ch oses :-)

Bonne journée à toi
Steph


Le samedi 25 juillet 2015 03:36:55 UTC+2, isabelle a écrit :
bonjour steph,

essaie comme ça,

Sub JE_TESTE_2()
Dim sSheet As String
sSheet = "þuil1!" 'nom de l'onglet des données
ActiveWorkbook.Names.Add Name:="b", RefersTo:=sSheet & Range("A1:B10" ).Address
Range("E1") = [CountIf(Index(b, , 2), ">")]
Range("E2") = [SumProduct((Index(b, , 1) = "A") * (Index(b, , 2)))]
End Sub

isabelle

Le 2015-07-24 09:38, a écrit :
> Bonjourno,
>
> Merci Daniel et Isa pour vos éclaircissements.
>
> Quand je me trouve dans l'idée de faire des calculs un peu plus compl exes sur des array sans boucler, je boucle un peu :-)
>
> Je n'ai pas encore réussi à faire fonctionner les solutions d'Isabe lle,
je dois pêcher sur une bêtise. mais je liste, on ne sait jamais le co de si cela
peut servir.
>
> Merci à vous deux, bon we
> Steph
1 2