XL pour MAC convertir une formule sommeprod a un code vba dans userform

ziyad djalil

XLDnaute Nouveau
salut jai un fichier qui contien une formule sommeprod et tres bien fonctionner je veus appliquer la fonction de cette formule dans userforme ..mercie a tous
 

Pièces jointes

  • sommeprod.xlsm
    21 KB · Affichages: 8
Solution
Bonjour ziyad djalil, Iznogood1, patricktoulon, le forum,
mais je peus change d4 et e3 avec nom de label dans userform
Oui en créant des noms définis :
VB:
Private Sub UserForm_Activate()
ThisWorkbook.Names.Add "Label1", Label1 'nom défini
ThisWorkbook.Names.Add "Label2", Label2 'nom défini
'Lab1 = [SUMPRODUCT((A4:A18=Label1)*(B4:B18=Label2))]
Lab1 = [SUM((A4:A18=Label1)*(B4:B18=Label2))] 'formule matricielle (plus simple)
End Sub
Plutôt que SUMPRODUCT il est plus simple d'utiliser la fonction SUM qui est évaluée en matriciel.

Et il est inutile d'indiquer la propriété Caption puisque c'est celle qui est prise par défaut.

Bonne journée.

patricktoulon

XLDnaute Barbatruc
re
attention on est dans un userform il n'est par forcé que les precedents de la formule soit du sheet actif
remplacer "Feuil1" par le non la feuille que tu veux
VB:
Private Sub UserForm_Activate()
    Lab1.Caption = Evaluate("=SUMPRODUCT((Feuil1!A4:A18=Feuil1.D4)*(Feuil1!B4:B18=Feuil1!E3))")
End Sub
 

job75

XLDnaute Barbatruc
Bonjour ziyad djalil, Iznogood1, patricktoulon, le forum,
mais je peus change d4 et e3 avec nom de label dans userform
Oui en créant des noms définis :
VB:
Private Sub UserForm_Activate()
ThisWorkbook.Names.Add "Label1", Label1 'nom défini
ThisWorkbook.Names.Add "Label2", Label2 'nom défini
'Lab1 = [SUMPRODUCT((A4:A18=Label1)*(B4:B18=Label2))]
Lab1 = [SUM((A4:A18=Label1)*(B4:B18=Label2))] 'formule matricielle (plus simple)
End Sub
Plutôt que SUMPRODUCT il est plus simple d'utiliser la fonction SUM qui est évaluée en matriciel.

Et il est inutile d'indiquer la propriété Caption puisque c'est celle qui est prise par défaut.

Bonne journée.
 

Pièces jointes

  • sommeprod(1).xlsm
    24.9 KB · Affichages: 3

ziyad djalil

XLDnaute Nouveau
merci bcp izngood1 il marche tres bien mais je peus change d4 et e3 avec nom de label dans userform
re
attention on est dans un userform il n'est par forcé que les precedents de la formule soit du sheet actif
remplacer "Feuil1" par le non la feuille que tu veux
VB:
Private Sub UserForm_Activate()
    Lab1.Caption = Evaluate("=SUMPRODUCT((Feuil1!A4:A18=Feuil1.D4)*(Feuil1!B4:B18=Feuil1!E3))")
End Sub
dommage il saffiche erreur
Bonjour ziyad djalil, Iznogood1, patricktoulon, le forum,

Oui en créant des noms définis :
VB:
Private Sub UserForm_Activate()
ThisWorkbook.Names.Add "Label1", Label1 'nom défini
ThisWorkbook.Names.Add "Label2", Label2 'nom défini
'Lab1 = [SUMPRODUCT((A4:A18=Label1)*(B4:B18=Label2))]
Lab1 = [SUM((A4:A18=Label1)*(B4:B18=Label2))] 'formule matricielle (plus simple)
End Sub
Plutôt que SUMPRODUCT il est plus simple d'utiliser la fonction SUM qui est évaluée en matriciel.

Et il est inutile d'indiquer la propriété Caption puisque c'est celle qui est prise par défaut.

Bonne journée.
Merci beaucoup. Le code fonctionne très bien. Je vous remercie encore
 

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 636
dernier inscrit
TOTO33000