VBA - SommeProd variabilisé par un combobox ?

  • Initiateur de la discussion Initiateur de la discussion Int0x
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Int0x

XLDnaute Occasionnel
Bonjour le forum,

Je travaille actuellement sur un UserForm, dont les labels sont modifiés en fonction d'un ComboBox.

Exemple:

Code:
Private Sub ComboBox1_Change()

Set Liste1 = Sheets("Listes").Range("H2:X1000")

Label9 = Application.VLookup(ComboBox1, Liste1, 2, False)
Label12 = Application.VLookup(ComboBox1, Liste1, 3, False)
Label13 = Application.VLookup(ComboBox1, Liste1, 4, False)
Label14 = Application.VLookup(ComboBox1, Liste1, 5, False)
[....]
End Sub

Je cherche maintenant à variabiliser un label par un SOMMEPROD en fonction du combobox.

J'ai le fameux message d'erreur "erreur d'exécution '13': Imcompatibilité de type" lorsque j'essaye les formules suivantes:

Code:
Label37 = Application.Evaluate("SUMPRODUCT(('data - full'!S4:S12 = combobox1.value)*('data - full'!T4:T12)")
Code:
Label37 = Application.Evaluate("SUMPRODUCT(('data - full'!S4:S12=""" & ComboBox1.Value & """)*('data - full'!T4:T12)")

J'avoue que je ne suis un peu bloqué 🙁
(le vba étant nouveau pour moi, je ne sais pas où il y'a cette incompatibilité...)

Par avance merci pour votre aide.
 
Re : VBA - SommeProd variabilisé par un combobox ?

Bonjour,

Les fonctions de feuille de calcul peuvent renvoyer des valeurs d'erreur (ex: #NA, #REF etc.) qui ne peuvent être affichées dans des labels (elles sont du type xlCvError et non String).

Mettre le resultat dans une variable de type Variant qui peut contenir les deux xlCvError ou String et tester ce résultat.

Code:
Dim res As Variant
res = Application.Evaluate("SUMPRODUCT(('data - full'!S4:S12=" & combobox1.Value & ")*('data - full'!T4:T12)")
If Not IsError(res) Then label1 = res

A+
 
Re : VBA - SommeProd variabilisé par un combobox ?

Bonjour Int0x, salut Hasco 🙂

Il manquait une parenthèse à la fin, ceci fonctionnera :

Code:
Label37 = Evaluate("SUMPRODUCT(('data - full'!S4:S12=""" & ComboBox1 & """)*('data - full'!T4:T12))")
et ceci fera la même chose :

Code:
Label37 = Application.SumIf(Range("'data - full'!S4:S12"), ComboBox1, Range("'data - full'!T4:T12"))
Edit : pour SUMPRODUCT, on suppose des valeurs textes sur S4:S12, d'où les guillemets.

Avec SumIf les valeurs peuvent être du texte ou des nombres.

A+
 
Dernière édition:
Re : VBA - SommeProd variabilisé par un combobox ?

Bonjour Hasco, Bonjour Job,

@Hasco: merci pour ces informations.
En rentrant ton code, je n'ai effectivement plus de problème d'incompatibilité. En revanche, je n'ai rien d'affiché, ce qui me laisse supposer que la synthaxe de ma formule est incorrecte.

@Job: pour la parenthèse, je pense qu'il s'agit d'un raté dans le copier-coller 😉
Merci pour le SumIf, mais je vais devoir rester sur un SUMPRODUCT car je vais y rajouter un paramètre par la suite. N'étant pas sûr de la synthaxe, je préférais travailler sur 2 critères.


Maintenant, j'ai toujours un problème de synthaxe...
Quelle devrait-être la bonne écriture pour cette formule ?

Code:
Label37 = Evaluate("SUMPRODUCT(('data - full'!S4:S12=""" & ComboBox1 & """)*('data - full'!T4:T12))")

ne fonctionne pas 🙁

Ni
Code:
Dim res As Variant
res = Application.Evaluate("SUMPRODUCT(('data - full'!S4:S12=""" & ComboBox1.Value & """)*('data - full'!T4:T12)")
If Not IsError(res) Then Label37 = res

Par avance merci,
Int0x
 
Dernière édition:
Re : VBA - SommeProd variabilisé par un combobox ?

Auto réponse:

Code:
Dim res As Variant
res = Application.Evaluate("SUMPRODUCT(('data - full'!S4:S12=""" & ComboBox1.Value & """)*('data - full'!T4:T12))")
If Not IsError(res) Then Label37 = res

fonctionne.
Je me permets de garder la file ouverte, car j'aurais très probablement de nouvelles questions sur ce sujet 🙂

Merci encore à Hasco & Job !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
962
Retour