Microsoft 365 VBA et SommeProd

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

  • Test_VBA.xlsm
    24.4 KB · Affichages: 3
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.

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Test_VBA.xlsm
    24.1 KB · Affichages: 3

pierrof

XLDnaute Occasionnel
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:p" & Range("A10100").End(xlUp).Row).FormulaLocal = _
"=@ItemSearch(D2)"

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

As-tu une idée ?

Merci

Bonne journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Test_VBA (1).xlsm
    25.7 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
314 783
Messages
2 112 926
Membres
111 702
dernier inscrit
ELEHMAEA