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

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 !

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.
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
 
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

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
 
- 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
16
Affichages
1 K
Retour