Proble execution boucle do while
seblg29
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai quelque souci sur un de mes scripts..
Je souhaite calculer une somme sur des lignes différentes (colonne 5) qui sont toutes oranges (la couleur orange servant de limite pour ce calcul de somme), et ensuite reporter le résultat de ce calcul en colonne 8 sur la première ligne orange.
Cependant lorsque les lignes ne sont pas oranges, ou sur les lignes oranges suivant la première, mon code me renvoi des 0. Je ne vois pas comment lui dire de ne rien renvoyer.
Voici mon code pour que vous y voyez plus claire :
J'ai quelque souci sur un de mes scripts..
Je souhaite calculer une somme sur des lignes différentes (colonne 5) qui sont toutes oranges (la couleur orange servant de limite pour ce calcul de somme), et ensuite reporter le résultat de ce calcul en colonne 8 sur la première ligne orange.
Cependant lorsque les lignes ne sont pas oranges, ou sur les lignes oranges suivant la première, mon code me renvoi des 0. Je ne vois pas comment lui dire de ne rien renvoyer.
Voici mon code pour que vous y voyez plus claire :
For j = 12 To i ligneini = j compt = 0 Do While Worksheets(feuille).Cells(j, 5).Interior.Color = 49407 compt = compt + Worksheets(feuille).Cells(j, 5).Value If Worksheets(feuille).Cells(j, 5).Interior.Color <> 49407 Then Exit Do End If j = j + 1 Loop Worksheets(feuille).Cells(ligneini, 8).Value = compt Worksheets(feuille).Cells(ligneini, 9).Value = Application.Average(Range(Cells(ligneini, 3), Cells(j - 1, 3))) Next End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Proble execution boucle do while
- My people do - Télécharger - Organisation
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- What you do what you say - Forum Audio
3 réponses
Penses toujours à mettre "Option Explicit" en haut de ton code (première ligne du fichier).
Essayes de faire du pas à pas (F8), et espionne les valeurs des variables (Shift+F9), tu peux aussi mettre des points d'arrêt (F9).
Essayes de faire du pas à pas (F8), et espionne les valeurs des variables (Shift+F9), tu peux aussi mettre des points d'arrêt (F9).
Bonjour
Si les cellules orange sont issues d'une mise en forme conditionnelles, il faut
raisonner sur la formule de mise en couleur et non sur la couleur
Si les cellules orange sont issues d'une mise en forme conditionnelles, il faut
raisonner sur la formule de mise en couleur et non sur la couleur
Bonjour,
Merci pour vos commentaires,
J'ai déjà essayé le mode pas à pas.
Mon problème intervient au niveau de la boucle if.
Do While Worksheets(feuille).Cells(j, 5).Interior.Color = 49407
compt = compt + Worksheets(feuille).Cells(j, 5).Value
If Worksheets(feuille).Cells(j, 5).Interior.Color <> 49407 Then
Exit Do
End If
j = j + 1
Loop
Il faudrait que lorsque la couleur de ma cellule est orange (code 49407), on "passe" au j + 1. Or ici, mon instruction me renvoi des 0 sur toutes les lignes "non orange"...
Cordialement,
Sébastien Le Guillou
Merci pour vos commentaires,
J'ai déjà essayé le mode pas à pas.
Mon problème intervient au niveau de la boucle if.
Do While Worksheets(feuille).Cells(j, 5).Interior.Color = 49407
compt = compt + Worksheets(feuille).Cells(j, 5).Value
If Worksheets(feuille).Cells(j, 5).Interior.Color <> 49407 Then
Exit Do
End If
j = j + 1
Loop
Il faudrait que lorsque la couleur de ma cellule est orange (code 49407), on "passe" au j + 1. Or ici, mon instruction me renvoi des 0 sur toutes les lignes "non orange"...
Cordialement,
Sébastien Le Guillou