Résolu:Remplacer fonction Somme.Si.Ens par une macro

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

P

Primatexcel

Guest
Bonjour à toutes et à tous,

Ma question est plutot simple.

Peut-on faire une macro pour un Userform qui aurait le meme resultat que la fonction "Somme.Si Ens." d'une feuille excel?

le but pour moi est de supprimer la fonction sur la feuille excel car j'en est beaucoup trop.

Merci de vos réponses
 
Dernière modification par un modérateur:
Re : Remplacer fonction Somme.Si.Ens par une macro

Bonjour.
Bien sûr que tu peux.
Pourrais-tu mettre un fichier en PJ.
Cela dépend de ta version Excel :

Exemple
Code:
Application.WorksheetFunction.SumIfs(Fl.Columns(8), Fl.Columns(1), cib1, Month(Fl.Cells(xndev, 6)), Month(Flech.Cells(3, colmois).Value))
Next

A+
 
Re : Remplacer fonction Somme.Si.Ens par une macro

Bonjour Regueiro,

merci de ta participation a mon problème je te joins un fichier et n’hésite pas me questionner pour plus d'infos.
Une autre question me vient a l'esprit et dis moi si je dois ouvrir une autre discussion?

Comment peut-on faire pour copier le contenue de plusieurs textbox avec une seule macro sachant qu'a chaque insertion sur la feuille excel la valeur du combobox change

voir le fichier

a plus
 
Dernière modification par un modérateur:
Re : Remplacer fonction Somme.Si.Ens par une macro

bonjour à toutes et a tous,
je reprends mon fil après plusieurs mois d'absence désolé.

mon problème est toujours le même avec quelques variantes je remercie tout de même Regueiro de son intervention et de sa proposition.

Je vous joins un fichier en espérant que quelqu'un pourra m'apporter une bonne idée (comme d'habitude).

Merci
 

Pièces jointes

Re : Remplacer fonction Somme.Si.Ens par une macro

Bonsoir Le Forum, PrimatExcel
Ton Fichier en Retour.
En Feuil2 chez insérer un tableau pour tes données
Explication :
Dans le USF pour remplir les Labels :
Code:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
With ListView1.SelectedItem
S = Me.ListView1.SelectedItem.Index
MsgBox S
Me.Label3.Caption = Sheets("Feuil1").Cells(4 + S, 3).Text
Me.Label4.Caption = Sheets("Feuil1").Cells(4 + S, 4).Text
End With
End Sub

Pour remplir les Formules lors de l'initialise de USF :

Code:
Private Sub UserForm_Initialize()
With Sheets("Feuil1")
Cells(5, 3).FormulaR1C1 = "=R[-2]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(5, 4).FormulaR1C1 = "=R[-2]C[-1]+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
Cells(6, 3).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(6, 4).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
Cells(7, 3).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(7, 4).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
Cells(8, 3).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(8, 4).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
Cells(9, 3).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(9, 4).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
'Tu désactive le code ci-dessous si tu veux voir les Formules
Range(Cells(5, 3), Cells(9, 4)).Value = Range(Cells(5, 3), Cells(9, 4)).Value
End With
With ListView1
With .ColumnHeaders '365
            .Clear
            .Add , , "Nombre", 55
        End With
        .View = lvwReport
        .FullRowSelect = True
        .Gridlines = True
End With

Remplir_ListView1 (M)

End Sub
Bonne soirée
A+
 

Pièces jointes

Re : Remplacer fonction Somme.Si.Ens par une macro

Re
un plus court :
Code:
Private Sub UserForm_Initialize()
With Sheets("Feuil1")
Range(Cells(5, 3), Cells(9, 4)).ClearContents

Cells(5, 3).FormulaR1C1 = "=R[-2]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(5, 4).FormulaR1C1 = "=R[-2]C[-1]+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[H])"
For i = 1 To 4
Cells(5 + i, 3).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[G])-SUMPRODUCT((Tableau1[OK]=R1C1)*(Tableau1[B]=RC[-1])*Tableau1[H])"
Cells(5 + i, 4).FormulaR1C1 = "=R[-1]C+SUMPRODUCT((Tableau1[B]=RC[-2])*Tableau1[G])-SUMPRODUCT
Next i

Range(Cells(5, 3), Cells(9, 4)).Value = Range(Cells(5, 3), Cells(9, 4)).Value
End With
 
- 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

Réponses
3
Affichages
366
Retour