Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle itérative

  • Initiateur de la discussion Initiateur de la discussion legrand.slb
  • 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 !

L

legrand.slb

Guest
Bonjour

Je cherche à créer une boucle qui permette de faire la chose suivante

On a un tableau de produit trié par valeur décroissante (colonne C)
A chaque itération on ajoute 1 à la valeur de la cellule D4 ce qui divise le Coût en cellule E4 par la valeur mise en D4
On tri le fichier par valeur décroissante des coûts colonne E.

Et on recommence autant de fois que la valeur située en cellule B1

Voir fichier exemple joint

Merci de votre aide
Bertrand
 

Pièces jointes

Re : Boucle itérative

bonjour pierrejean,
on oubli les résultats successifs, le fichier boucle sur lui-même et le résultat final s'affiche à la 30ième itération
merci de ton aide, bertrand
 
Re : Boucle itérative

bonjour legrand.slb , l'ami pierrejean🙂🙂
une autre facon de l'ecrire comme j'ai compris pas sûre🙁 copy tablo a cote en g4

Code:
 Sub es()
 Dim t(), t1(), x As Long, i As Long, c As Long, z As Long
  Application.ScreenUpdating = False
  Range("A4:E23").Copy Destination:=[g4]
  For z = 1 To [b1]
  x = 0
  t = Range("g4:k23")
  ReDim t1(1 To UBound(t), 1 To 5)
  For i = 1 To UBound(t)
  x = x + 1
  If x = 1 Then t(i, 4) = t(i, 4) * 2: t(i, 5) = t(i, 5) / t(i, 4)
  For c = 1 To 5: t1(x, c) = t(i, c): Next c
  Next i
  [g4].Resize(x, 5) = t1
  Erase t, t1
  [g4:k23].Sort Key1:=Range("k4"), Order1:=xlDescending, Header:=xlGuess
  Next z
End Sub

ps :remplacer
t(i, 4) = t(i, 4) * 2
par
t(i, 4) = t(i, 4) +1
 
Dernière édition:
Re : Boucle itérative

Bonsoir pierrejean et laetitia90

Merci beaucoup pour votre aide.
La solution pierrejean répond à la question posée mais j'ai plusieurs fichiers d'un nombre de lignes variable. Serait-il possible de ne pas mettre en dur la longueur du tableau dans la macro ?
Et au risque de paraître exigeant serait-il possible de mettre le résultat dans une nouvelle feuille.

Pour Laetiti90, j'ai bien remplacé
t(i, 4) = t(i, 4) * 2
par
t(i, 4) = t(i, 4) +1
mais à la 5° itération(correspondant à la 3° itération du produit 1) le produit 1 passe d'un coût de 10 000 à 3333 au lieu de 6667. La division doit se faire sur la valeur initiale et non sur la valeur recalculée.

Merci encore de votre aide
Bertrand
 
Re : Boucle itérative

Bonsoir
Ce qui facilite nos réponses ... rapides
c'est de mettre ( certes ajouter des com.) ex avec des fleches le debut et ce que l'on veut en final !!
Ce n'est que ma perception ...... certains pourraient approuver mais comme ils ont été satisfait .. on les voit plus ... Dommage
 
Re : Boucle itérative

Bonsoir herve62

Je ne suis pas sûr d'avoir bien compris ton post.
Si je traduis, ma demande n'était pas assez explicite ?????

Mais souvent, c'est seulement en voyant le résultat que le choses se précise du coté demandeur..... non ?

Bien cdt
Bertrand
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…