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

Moulinois

XLDnaute Occasionnel
Bonjour !

Dans le fichier joint, j'ai une nomenclature à niveaux (tel produit de niveau 3 entre dans la fabrication de tel produit de niveau 2 etc).

Les prix de revient de chaque niveau sont décomposés dans les colonnes D à G.

Je voudrais qu'une macro puisse me calculer le prix de revient de chaque niveau en incluant celui de ses sous-niveaux, comme sur l'exemple.

Chaque niveau est la somme de tous ceux qui sont en-dessous jusqu'au prochain niveau supérieur ou égal et je dois dire que j'ai du mal à le conceptualiser 😀


Merci de m'aider.
 

Pièces jointes

Dernière édition:
Re : Somme "spéciale"

re:

Code:
    For i = 2 To D
        If Range("D" & i) = "A" Then
            For j = [COLOR="Red"]i[/COLOR] To D
                If Range("A" & j) > Range("A" & i) Then
                    Range("G" & j & ":I" & j).Clear
                Else: Exit For
                End If
            Next
        End If
    Next

le probleme est que j ne sais pas ce que tu veux exclure sinon la premiere boucle fonctionnant, il faut la garder................

je n'ai toujours pas compris le IF range("D" & j) = "A" then exit For alors que les A sont en majorité

explique ce que tu veux exclure et pourquoi parceque la je suis dans le brouillard complet
 
Re : Somme "spéciale"

re:

Code:
    For i = 2 To D
        If Range("D" & i) = "A" Then
            For j = [COLOR="Red"]i[/COLOR] To D
                If Range("A" & j) > Range("A" & i) Then
                    Range("G" & j & ":I" & j).Clear
                Else: Exit For
                End If
            Next
        End If
    Next

le probleme est que j ne sais pas ce que tu veux exclure sinon la premiere boucle fonctionnant, il faut la garder................

je n'ai toujours pas compris le IF range("D" & j) = "A" then exit For alors que les A sont en majorité

explique ce que tu veux exclure et pourquoi parceque la je suis dans le brouillard complet

Pardon, je réponds tard car je n'avais pas vu la seconde page 🙄

j part bien de i+1 puisque c'est à partir de la ligne qui suit le premier A qu'il faut virer les valeurs (la valeur du module complet étant donnée par la première ligne de A).

Bref, j'ai testé et re-testé et ça tourne 🙂
(Mine de rien, chuis content de moi...)


Merci pour ton aide précieuse pour le premier morceau de code 😉

@+
 
- 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

Réponses
3
Affichages
734
Réponses
32
Affichages
3 K
M
  • Question Question
Réponses
0
Affichages
2 K
M
D
Réponses
5
Affichages
2 K
Dje_Ejd
D
G
Réponses
9
Affichages
1 K
G
Retour