Calcule du besoin réel

Bonjour,

Aidez-moi SVP

Mon but est de calculer le besoin Réel (colonne F) concernant des composants mécaniques d’un engin.

Dans la nomenclature d’un engin on peut trouver des composants qu’on appellera : composant père, qui peuvent avoir des composants fils voire petit-fils…Le composant père peut aussi ne pas avoir de fils.

Exemple : 1 vélo (père) ; 2 roues(fils) ; 4 boulons pour chaque roue (petit-fils) :

Dans le tableau joint, dans la première colonne ; les pères=1, les fils=2, les petits-fils=3

Dans la première colonne, les pères précèdent toujours les fils qui à leurs tours précèdent les petits fils

Remarque : le fils peut être un père s’il a un fils ; (le 2 est le père du 3)

Plus d’explication sur le tableau

Merci d’avance pour votre aide

27nomenclature.xlsx (11.84 Ko)

Bonjour,

plutôt qu'une fonction personnalisée qui risque d'être lente (c'est relatif...), une macro qui calcule l'ensemble.

Il y a peut-être des tests à ajouter pour les cas (non précisés) où tu ne veux pas de résultat.

Je colle en G que tu puisse contrôler. Si ok modifier pour coller en F.

eric

18nomenclature.xlsm (21.33 Ko)

Mille merci eriic, respect

Juste un souci, c’est que j’ai plus 7 générations dans la nomenclature…je t’envois le tableau sur lequel je travaille,

Peux-tu STP aussi me dire ou je peux visualiser concrètement cette macro (j’ne m’y connais pas en macros)

Encore merci


Mille merci eriic, respect

J’ai Juste un souci, c’est que j’ai plus 7 générations dans la nomenclature…je t’envois le tableau sur lequel je travaille,

Peux-tu STP aussi me dire ou je peux visualiser concrètement cette macro (j’ne m’y connais pas en macros)

PEUX-tu STP voir si tu peux formuler une équation

Encore merci

cher eriic , une équation même longue serra vraiment la bienvenue de ta part, il me reste peu de temps avant de transmettre les besoin

Merci

J'ai supposé que le calcul de chaque génération s'appuyait sur la précédente.

Contrôler si ok.

Clic-droit sur le nom d'onglet et 'Visualiser le code....' pour y accéder.

Sub besoinReel()
    Dim datas, result
    Dim parent(1 To 10, 1 To 3) As Double
    Dim lig As Long, gen As Long, i As Long

    datas = [A2].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 1, 5).Value
    ReDim result(1 To UBound(datas, 1))
    For lig = 1 To UBound(result)
        gen = datas(lig, 1)
        ' stocker param génération x
        For i = 1 To 3
            parent(gen, i) = datas(lig, i + 2)
        Next i
        ' calcul
        If gen = 1 Then
            '=C2-D2
            result(lig) = datas(lig, 3) - datas(lig, 4)
        Else
            '=(E2*C5/C2)-D5
            result(lig) = (parent(gen - 1, 3) * datas(lig, 3) / parent(gen - 1, 1)) - datas(lig, 4)
        End If
    Next lig
    [F2].Resize(UBound(result)) = Application.Transpose(result)
End Sub

Dim parent(1 To 10, 1 To 3) As Double

Prévu pour 10 générations. Augmenter si besoin.

Garder l'extention .xlsm pour conserver la macro. Il faut les accepter à l'ouverture du fichier, et cliquer sur le bouton pour recalculer

Tu n'as pas dit s'il fallait conserver tous les résultats (nombres négatifs)

eric

24methode-planning.xlsm (108.13 Ko)

RESPECT A ERIIC ET DE LA GRATITUDE, PROBLEME RESOLU

Rechercher des sujets similaires à "calcule besoin reel"