Microsoft 365 VBA et SommeProd

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 !

pierrof

XLDnaute Occasionnel
Bonjour à tous,

J'ai un nouveau projet concernant une étude sur la réalisation de chiffre d'affaire.

Je souhaiterai à l'aide d'une macro, remplir automatiquement plusieurs tableau avec des sommes de montants.

Plusieurs facteurs doivent rentré en compte le mois, la ville, la catégorie de l'objet vendu...

Je joins un fichier exemple, avec une partie Export des données, Data où on assimile l'objet vendu à une catégorie et une feuille résultat où se trouve les tableaux à remplir.

Merci de votre aide.

Bonne journée

Cordialement
 

Pièces jointes

Solution
Bonjour Pierrof,
Je ne comprends pas votre problème. Tout dépend où vous mettez cette ligne de code.
Pas dans "Function ItemSearch(Objet$)" ?
Si oui cela ne marche pas. Le code que j'ai fourni est une fonction, dont le résultat ne peut être que dans la cellule où est cette fonction.
Si c'est dans un module, alors ce code marche :
Code:
Sub CollerFormule()
    Application.Calculation = xlCalculationManual ' Evite de recalculer tout en permanence.
    Range("P2:P" & [A65500].End(xlUp).Row).FormulaLocal = "=ItemSearch(D2)"
    Application.Calculation = xlCalculationAutomatic
End Sub
Voir PJ.
Bonjour Pierrof,
Un essai en PJ, avec une colonne supplémentaire en page Export où on insère l'Item en colonne K, avec cette fonction personalisée:
VB:
Function ItemSearch(Objet$)
    Col = 1: ItemSearch = ""
    If Objet = "" Then Exit Function
    With Sheets("Data")
        While .Cells(1, Col) <> ""
            If Application.CountIf(.Range(.Cells(1, Col), .Cells(1000, Col)), Objet) > 0 Then
                ItemSearch = .Cells(1, Col)
                Exit Function
            End If
            Col = Col + 1
        Wend
    End With
End Function
Et en feuille Calcul une simple formule dans les tableaux :
Code:
=SOMME.SI.ENS(Export!$J:$J;Export!$A:$A;$A$1;Export!$K:$K;C$2;Export!$I:$I;MOIS($A3);Export!$H:$H;ANNEE($A3))
 

Pièces jointes

Bonjour sylvanu,

Merci pour ton retour et explication, j'ai essayé de l'adapter à mon projet mais je rencontre un problème lorsque je intégrer la recherche de l'Item, j'ai ajouter une formule:

'renseigner l'Item
Range("P2😛" & Range("A10100").End(xlUp).Row).FormulaLocal = _
"=@ItemSearch(D2)"

Mais l'item ne s'affiche pas...

As-tu une idée ?

Merci

Bonne journée
 
Bonjour Pierrof,
Je ne comprends pas votre problème. Tout dépend où vous mettez cette ligne de code.
Pas dans "Function ItemSearch(Objet$)" ?
Si oui cela ne marche pas. Le code que j'ai fourni est une fonction, dont le résultat ne peut être que dans la cellule où est cette fonction.
Si c'est dans un module, alors ce code marche :
Code:
Sub CollerFormule()
    Application.Calculation = xlCalculationManual ' Evite de recalculer tout en permanence.
    Range("P2:P" & [A65500].End(xlUp).Row).FormulaLocal = "=ItemSearch(D2)"
    Application.Calculation = xlCalculationAutomatic
End Sub
Voir PJ.
 

Pièces jointes

- 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

Retour