Ajouter une condition dans un TCD

Bonjour,

Je souhaiterais ajouter une condition dans un TCD afin d'analyser mes données mais ne sais comment faire. Je requiers donc votre aide.

Voici mon pble avec exemple en PJ.

J'ai en données d'entrée 3 infos: mes articles, leur stock et mes besoins. Je voudrais avoir les manquants (différence entre le besoin et le stock). Jusque là c'est simple.... Mais il arrive que je puisse avoir plusieurs besoins sur un même article ce qui s'exprime par plusieurs lignes dans mon tableau de base et chose que je ne souhaite pas modifier en ajoutant une fonction. Mon onglet de base Feuil1 doit rester tel que (exemple CDE ou EFG dans le fichier).

Dans mon TCD, en face de mon article ABC je devrai avoir un "Manquant" à -7, article CDE à -11 , article EFG à -3 ( et pas un stock positif à +19, c'est là que ça se complique...) , GHI à 0 et IJK à +3

Je vous remercie de votre aide.

26exemple-pble.xlsx (8.78 Ko)

Bonjour,

Je vous propose de calculer vos manquants à l'aide la formule en D4 ( à tirer vers le bas ensuite) :

=SI(NB.SI($A$4:$A$10;A4)>1;SI(NB.SI($A$4:A4;A4)=1;B4-SOMME.SI($A$4:$A$10;A4;$C$4:$C$10);0);B4-C4)

A tester bien évidemment !

Bonjour JFL,

Je vous remercie de votre retour, mais je pense que je me suis mal exprimé.

En fait je souhaiterais créer un TCD à partir de la feuille 1 ou une macro à partir de cette page. Celle-ci sera un extrait brute de mes donnée sorties de mon ERP et je ne souhaite pas modifier cette feuille, ni recréer une 2e page sur le même format.

Merci.

Je vous retourne votre fichier avec un TCD lié mais....tenant compte de ma formule calculant le manquant par produit.

S'il vous est impossible de modifier cet onglet, la solution de votre problème me semble délicate à trouver car les champs calculés que l'on peut intégrer dans un TCD sont un peu limités. Cela étant, je ne suis pas un spécialiste TCD. Mais rassurez-vous, il y en a ici !

Ils confirmeront mon point de vue ou, je l'espère, l'infirmeront !

42tcd.xlsx (12.84 Ko)

Bonjour,

Une proposition à étudier.

Cdlt.

115exemple-pble.xlsm (35.79 Ko)
Jean-Eric a écrit :

Une proposition à étudier.

Il me reste énormément de chemins à parcourir....!

Tant mieux !

Bonjour Jean-Eric, bonjour JFL,

Merci à vous deux, je vais tester la solution de Jean-Eric qui me parait très intéressante.

Merci encore.

Cdlt,

Bonjour,

Merci de nous tenir au courant.

Cdlt.

Bonjour Jean-Eric,

Je vous confirme que le principe me convient très bien. Cependant, étant novice, comment faites vous la suppression des doublons pour le calcul ? est-ce manuel ou en automatique via la fonction (touche) calcul ?

Lorsque j'essaie, ne sachant pas créer ce raccourci calcul (et RAZ), je suis obligé de faire une suppression des doublons manuellement et recopier ma formule en l'étirant..... Pourriez vous m'éclairer sur la marche à suivre pour "automatiser" un maximum mon besoin.

Vous en remerciant.

Cdlt.

RE,

Le fichier comporte 2 procédures VBA exécutées à partir des boutons Calculs et RAZ..

Pour les visualiser : ALT F11 pour ouvrir l'éditeur VBE.

Les procédures sont placées dans les modules Feuil1(Données) et Feuil2(Calculs), en haut à gauche de ton écran.

On utilise l'objet "Dictionary" pour établir la liste sans doublons des articles dans le tableau de la feuille Données.

Cette liste sans doublons est restituée dans le tableau de la feuille Calculs.

A partir de cette liste, on calcule (par formules), la moyenne des stocks et la somme des Besoins...

Seul le tableau en feuille Données doit être modifié.

Fais des essais, en ajoutant ou supprimant des éléments en feuille Données puis en cliquant sur le bouton Calculs.

A te relire, peut-être.

Cdlt.

Private Sub cmdCalcul_Click()
'Déclaration des variables
Dim lo As ListObject, lo2 As ListObject
Dim rCell As Range, Cell As Range
Dim Dict As Object
Dim Arr() As Variant
    'Optimisation code (gel affichage)
    Application.ScreenUpdating = False
    'Initialisation des variables
    Set lo = Me.ListObjects(1)
    Set lo2 = Worksheets("Calculs").ListObjects(1)
    Set Dict = CreateObject("Scripting.Dictionary")
    'Réinitialisation tableau
    With lo2
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
        Set rCell = .InsertRowRange.Cells(1)
    End With
    For Each Cell In lo.ListColumns(1).DataBodyRange
        Dict(Cell.Value) = ""
    Next Cell
    'Restitution liste sans doublons
    rCell.Resize(Dict.Count, 1).Value = Application.Transpose(Dict.keys)
    'Activation feuille Calculs
    With Worksheets("Calculs")
        .Activate
        .Cells(1).Select
    End With
    'RAZ variables
    Set rCell = Nothing
    Set Dict = Nothing
    Set lo2 = Nothing: Set lo = Nothing
End Sub
Private Sub cmdRaz_Click()
    'Réinitialisation tableau en conservant les formules et sa mise en forme
    With ActiveSheet.ListObjects(1)
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
    End With
End Sub

Bonjour,

Merci Jean-Eric. Après qques heures à m'arracher les cheveux j'ai réussi à retranscrire ton code sur mon besoin....

En revanche je n'arrive pas à ajouter un 3e champs dans le calcul qui pourrait me donner un complément aux manquants... Je me permettrai de revenir au cas où je bloquerais encore....

Merci à tous.

Bonjour,

Comme dit dans mon message précédent, après rajout d'une colonne donnant un nom de gestionnaire, je n'arrive pas à retranscrire celui-ci dans la VBA afin de l'afficher dans la feuille Calculs.

Est-ce que quelqu'un saurait m'aider svp ?

tableau en PJ.....

Bonjour,

Une nouvelle proposition à tester.

Cdlt.

Merci Jean-Eric. C'est ce que j'avais essayé de faire de mon côté mais sans y arrivé.

Le résultat est bon, mais il m'a fallu me battre avec les formats des cellules.

Merci encore de ton aide.

Cdlt,

Re,

Pense à clore le sujet, mais avant tout, modifie le titre de ton sujet, car il ne traite pas de TCD.

Cdlt.

Rechercher des sujets similaires à "ajouter condition tcd"