• Initiateur de la discussion Initiateur de la discussion stephanec
  • 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 !

S

stephanec

Guest
Bonjour,

Dans un Userform j'ai 3 combobox alimentés par Colonne A B C sur feuille


Je met sur combobox3 formule sumproduct ci dessous

Me.TextBox1.Value = Application.Evaluate("SumProduct((a2:a7=""" & Me.ComboBox1 & """)*(b2:b7= """ & Me.ComboBox2 & """)*(c2:c7 = """ & Me.ComboBox3 & """)*(d2:d7)*(e2:e7))")

Or si colonne C est numérique fonction me retourne 0.

Sur feuille test avec sommeprod cela marche?

Qui peut m'éclairer? Merci
 
Re : sumproduct

Bonjour stephanec, bienvenue sur XLD,

Testez ceci :

Code:
Private Sub ComboBox3_Change()
TextBox1 = Evaluate("Sum((a2:a7=""" & ComboBox1 & """)*(b2:b7= """ & _
ComboBox2 & """)*(c2:c7 = " & ComboBox3 & ")*d2:d7*e2:e7)")
End Sub
A+
 
Re : sumproduct

Bonjour stephanec,

Avec ceci pas besoin de On Error Resume Next, il y a toujours un #DIV/0! en 4ème colonne :

Code:
Private Sub UserForm_Initialize()
Dim s As Boolean
s = ThisWorkbook.Saved
With Sheets("Liste")
  .[A:D].Clear
  [A1].CurrentRegion.Resize(, 3).Copy .[A1]
  With .[A1].CurrentRegion
    If .Rows.Count = 1 Then Exit Sub
    .Sort .Columns(1), 1, , .Columns(2), 1, .Columns(3), 1, Header:=xlYes
    With .Offset(1).Resize(, 4)
      .Columns(4).FormulaR1C1 = "=1/OR(RC1<>R[1]C1,RC2<>R[1]C2,RC3<>R[1]C3)"
      .Columns(4) = .Columns(4).Value
      .Sort .Columns(4), 1, Header:=xlNo 'tri pour accélérer la suppression
      Intersect(.Cells, .SpecialCells(xlCellTypeConstants, 16).EntireRow).Delete xlUp
      .Columns(4).Clear
      ListBox1.RowSource = .Address(External:=True)
    End With
  End With
End With
If s Then ThisWorkbook.Saved = True 'pour éviter l'invite à la fermeture
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : sumproduct

Re,

Tant qu'à faire autant afficher la 4ème colonne de la ListBox et supprimer la TextBox.

Noter que pour cadrer les nombres à droite j'utilise Courier New, police à chasse fixe.

Fichier (2).

Edit : ajouté Round pour arrondir la 4ème colonne.

A+
 

Pièces jointes

Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

E
Réponses
8
Affichages
1 K
Emli15
E
Réponses
1
Affichages
1 K
P
  • Question Question
Réponses
3
Affichages
1 K
P
  • Question Question
Réponses
5
Affichages
1 K
phanielambs
P
B
Réponses
3
Affichages
948
Billard
B
A
Réponses
2
Affichages
1 K
A
Retour