Problème avec une boucle do while
Résolu/Fermé
A voir également:
- Problème avec une boucle do while
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Xwxwxwxwv songs do 2023 ✓ - Forum Audio
- Boucle excel sans macro - Forum Excel
- Sad song - Forum Musique / Radio / Clip
- Boucle cmd - Forum Programmation
1 réponse
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
21 janv. 2012 à 17:41
21 janv. 2012 à 17:41
bonjour
1. quelques simplifications dans ton code (les Select ne sont pas terribles)
au point de vue rapidité ça ne devrait pas être très significatif avec deux boucles do ... loop while
j'ai ajouté un exit for qui permet de quitter la boucle for each dès que POComplet est trouvé dans la feuille ListePO
2. un code un peu plus explicite avec deux boucles for ... next
bonne suite
1. quelques simplifications dans ton code (les Select ne sont pas terribles)
au point de vue rapidité ça ne devrait pas être très significatif avec deux boucles do ... loop while
j'ai ajouté un exit for qui permet de quitter la boucle for each dès que POComplet est trouvé dans la feuille ListePO
Do k = 1 POcomplet = Sheets("sheet2").Cells(k, 1) For Each cell1 In Sheets("ListePO").Range("B2:B200") If cell1 = POcomplet Then cell1 = "complet" exit for End If Next suite: k = k + 1 Loop While Sheets("sheet2").Cells(k, 1) <> ""
2. un code un peu plus explicite avec deux boucles for ... next
Dim liPO As Long, lifinPO As Long Dim lish2 As Long, lifinsh2 As Long Dim POcomplet ' desactive le rafraichissement ecran Application.ScreenUpdating = False ' recuperation de la dernière ligne non vide feuille ListePO colonne 1 lifinPO = Sheets("ListePO").Cells(Rows.Count, 1).End(xlUp).Row ' recuperation de la dernière ligne non vide feuille sheet2 colonne 2 lifinsh2 = Sheets("sheet2").Cells(Rows.Count, 2).End(xlUp).Row ' on decrit la liste de la feuille sheet2 For lish2 = 2 To lifinsh2 POcomplet = Sheets("sheet2").Cells(lish2, 2).Value ' pour cette valeur de v on décrit la feuille ListePO For liPO = 1 To lifinPO If Sheets("ListePO").Cells(liPO, 1).Value = POcomplet Then ' on met complet dans la cellule a droite (pour ne pas effacer) Sheets("ListePO").Cells(liPO, 2).Value = "complet" ' on quitte la boucle si POComplet dans sheet2 ne figure ' qu'une fois dans ListePO ' sinon supprimer Exit for Exit For End If Next liPO Next lish2 Application.ScreenUpdating = True
bonne suite
25 janv. 2012 à 21:11