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

Sélection multiple dans une "zone de liste"

1 réponse
Avatar
00000
Bonjour,

Je cherche a obtenir un résultat (une somme exactement) qui s'afficherait
dans une "Zone de texte" en fonction d'une "sélection multiple" opérée dans
une "zone de
liste".

Les informations sont issue de la même requête:

Exemple: REQUETE_CA_PAR_MAGASIN
---------

Champs: MAGASIN Champs: DATE Champs: CA
- MAGASIN A - 01/02/2004 - 10 000
- MAGASIN B - 01/02/2004 - 12 000
- MAGASIN A - 02/02/2004 - 8 000
- MAGASIN C - 02/02/2004 - 14 000
- MAGASIN B - 02/02/2004 - 10 000
- MAGASIN A - 03/02/2004 - 12 000

Si je sélectionne dans la "zone de liste" de mon formulaire le "MAGASIN
A" + "MAGASIN B", je souhaite voir afficher dans la "zone de texte", le CA
TOTAL
correspondant, soit "52 000" (10 000 + 8 000 + 12 0000) + (12 000 + 10 000)

Grâce à Maxence et à Eric je sais désormais calculer une somme lorque je
sélectionne 1 magasin précis (sélection unique):

=SOMDOM("CA";"REQUETE_CA_PAR_MAGASIN";"MAGASIN=" & Car(34) & TaDropDown &
CAR(34))

Par contre que faut-il modifier ou ajouter lorsqu'on sélectionne plusieurs
élément dans la "zone de liste". En changeant la propriété "Sélection
multiple", aucun résultat ne s'affiche dans la "zone de texte" (blanc).
Par ailleurs, je souhaiterais savoir à quoi correspond l'instruction
CAR(34).

Merci pour votre aide,

FD

1 réponse

Avatar
Eric
Bonjour FD,

Il faut que tu mettes du code VBA sur l'évènement Après Mise à jour de
ta zone de liste.

Soit Liste0 ta zone de liste - propriété Sélection Multiple : Simple
(Onglet Autres)
Soit une zone de texte nommée Texte2 - Propriétés Format : Monétaire

le code est du genre :

Private Sub Liste0_AfterUpdate()
Dim i, Restriction As String

If Me.Liste0.ItemsSelected.Count = 0 Then
Texte2 = 0 ' ou DSum("CA", "REQUETE_CA_PAR_MAGASIN")
Exit Sub
End If

For Each i In Me.Liste0.ItemsSelected
If Me.Liste0.ItemsSelected.Count = 1 Then
Restriction = "[Magasin]='" & Me.Liste0.ItemData(i)
Else
Restriction = Restriction & "[Magasin]='" _
& Me.Liste0.ItemData(i) & "' Or "
End If
Next i
If Me.Liste0.ItemsSelected.Count > 1 Then
Restriction = Left(Restriction, Len(Restriction) - 5)
End If
Restriction = Restriction & "'"
Texte2 = DSum("CA", "REQUETE_CA_PAR_MAGASIN", Restriction)
End Sub


- CAR(34) correspond au guillemet : " -

A+
Eric




Bonjour,

Je cherche a obtenir un résultat (une somme exactement) qui s'afficherait
dans une "Zone de texte" en fonction d'une "sélection multiple" opérée dans
une "zone de
liste".

Les informations sont issue de la même requête:

Exemple: REQUETE_CA_PAR_MAGASIN
---------

Champs: MAGASIN Champs: DATE Champs: CA
- MAGASIN A - 01/02/2004 - 10 000
- MAGASIN B - 01/02/2004 - 12 000
- MAGASIN A - 02/02/2004 - 8 000
- MAGASIN C - 02/02/2004 - 14 000
- MAGASIN B - 02/02/2004 - 10 000
- MAGASIN A - 03/02/2004 - 12 000

Si je sélectionne dans la "zone de liste" de mon formulaire le "MAGASIN
A" + "MAGASIN B", je souhaite voir afficher dans la "zone de texte", le CA
TOTAL
correspondant, soit "52 000" (10 000 + 8 000 + 12 0000) + (12 000 + 10 000)

Grâce à Maxence et à Eric je sais désormais calculer une somme lorque je
sélectionne 1 magasin précis (sélection unique):

=SOMDOM("CA";"REQUETE_CA_PAR_MAGASIN";"MAGASIN=" & Car(34) & TaDropDown &
CAR(34))

Par contre que faut-il modifier ou ajouter lorsqu'on sélectionne plusieurs
élément dans la "zone de liste". En changeant la propriété "Sélection
multiple", aucun résultat ne s'affiche dans la "zone de texte" (blanc).
Par ailleurs, je souhaiterais savoir à quoi correspond l'instruction
CAR(34).

Merci pour votre aide,

FD