Calcul avec une boucle

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

Luigi

XLDnaute Occasionnel
Bonjour à tous

J’ai un petit problème pour faire une macro avec une boucle, dans l’onglet « Essai_1 » j’ai une macro qui calcul en I2 le nombre de pièces produites en faisant la soustraction de la dernière ligne de la colonne E moins la première ligne de la colonne E le nombre de ligne peut-être variable ( dans mon exemple E33-E4). Cette macro fonctionne bien.
Dans l’onglet « Essai_2 » j’ai à peu prés le même tableau à la différence qu’il y a une remise à zéro du nombre de pièces, donc je ne peu plus faire la soustraction de la valeur de la dernière pièce moins la première. Il faut faire ( dans mon exemple ((E17-E4)+E33) ).
Je pense qu’il faut faire une boucle qui trouve la ligne où il y a la remise à zéro du nombre de pièce pour réaliser le calcul, mais là je flanche.

Quelqu’un pourrait-il m’aider pour ce calcul, d’avance merci

PS : mon fichier Excel en pièce
 

Pièces jointes

Re : Calcul avec une boucle

bonjour Luigi,

je te propose une solution avec une formule (ça fonctionne sur ton exemple) :
=DECALER($E$1;EQUIV(MAX($E:$E);$E:$E;0)-1; )-$E$4+DECALER($E$4;NB($E:$E)-1; )

en gros,
E17=DECALER($E$1;EQUIV(MAX($E:$E);$E:$E;0)-1; )
E33=DECALER($E$4;NB($E:$E)-1; )

le tout sans les espaces entre ; et )

a+
 
Re : Calcul avec une boucle

re bonjour Luigi,

en me repenchant sur ton problème, je me suis apperçu que je me suis un peu compliqué la tache...
cette formule devrai suffire
=MAX($E:$E)-$E$4+DECALER($E$4;NB($E:$E)-1; )

la fonction DECALER renvoie une zone (une ou plusieurs cellules) que l'on va positionner et dimensionner par rapport à une "cellule de référence" ;
DECALER(A1;1;0) renvoi A2
DECALER(A1;0;3) renvoi D1
DECALER(A1;0;0;10) renvoi A1:A10
DECALER(A1;2;4;5;2) renvoi E3:G8
sur l'exemple DECALER($E$4;NB($E:$E)-1; ),
NB($E:$E) = 30 > nombre de cellules de la colonne E qui contiennent un nombre
DECALER($E$4;NB($E:$E)-1; ) = DECALER(E4;29;0) = cellule E33 = 15

(même si cette fonction n'est donc plus utile...)
la fonction EQUIV renvoie "l'index d'un élément dans un tableau" :
EQUIV(MAX($E:$E);$E:$E;0)=QUIV(5541;$E:$E;0)=17
donc 5541 est le 17ème élément de la colonne E (du tableau E1:E65536)

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

  • Question Question
Réponses
15
Affichages
2 K
Réponses
2
Affichages
534
Retour