Pb boucle

Signaler
Messages postés
19
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
24 février 2006
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
' On ajoute les points confirmés dans le filtre numérique


' Déclaration des variables
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim IcaptFiltre(32) As Double
Dim Calculmoy As Byte
Dim IcaptFiltrePos As Double
Dim IcaptFiltreCount As Double
Dim x As Double
Dim imoy As Double
x = 0
IcaptFiltreCount = 1
Dim j As Integer


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Ajoute les points confirmés dans le filtre numérique
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

If Calculmoy = 1 Then


While Range("C2").Offset(x, 0).Value <> ""

If IcaptFiltrePos >= TextBox2.Text Then
IcaptFiltrePos = 0
End If

If IcaptFiltreCount > TextBox2.Text Then
IcaptFiltreCount = TextBox2.Text
End If

IcaptFiltre(IcaptFiltrePos) = Worksheets("Données Converties").Range("C2").Offset(x, 0)



imoy = 0

For j = 0 To IcaptFiltreCount - 1

imoy = imoy + IcaptFiltre(j)

Next j

imoy = imoy / IcaptFiltreCount

Worksheets("Données Converties").Range("G2").Offset(x, 0).Value = imoy

IcaptFiltrePos = IcaptFiltrePos + 1
IcaptFiltreCount = IcaptFiltreCount + 1
x = x + 1

Wend

End If



STABILITE = 0
If STABILITE = 0 Then


' Déclaration des variable

Dim x1 As Double
x1 = 0


' Vérification que la stabilité est revenue

While Worksheets("Données Converties").Range("C2").Offset(x1, 0) <> ""

If (Worksheets("Données Converties").Range("C2").Offset(x1, 0) < Worksheets("Données Converties"). _
Range("E2").Offset(x1, 0)) Or (Worksheets("Données Converties").Range("C2").Offset(x1, 0) > Worksheets("Données Converties"). _
Range("F2").Offset(x1, 0)) Then
Cstable = 0
IcaptFiltrePos = 0
IcaptFiltreCount = 1

Else

Cstable = Cstable + 1
Cinf = 0

Csup = 0
If Cstable >= TextBox3.Text Then

STABILITE = 1
Calculmoy = 1

Else

Calculmoy = 1

End If

End If

Wend

'Else

voila mon souci ... c'est un programme qui va moyenner des points et rejeter des point qui sont hor une certaine fenetre avec un maximum de rejet toléré ! je fai ma fonction moyenne ... le problem c que qd je l apel apré dans le prog il ne le fé pa ! j ai des prob de boucle mais je m en sort pas

merci

7 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Salut,

Execute d'abord ton programme en pas à pas pour voir dans quelles boucles il ne rentre pas, ou quels IF ne fonctionnent pas.


Comme tu ne nous donnes pas la totalité de ton code, on ne peut pas vraiment voir ce qu'il fait.

On ne sait pas quand et comment est appelée ta procédure.

Manu
0
Messages postés
19
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
24 février 2006

en fait ce que je comprend pas ...

c'est que quand je dit : SI ...........

ALORS moyenne = = 1

IN SI

par exemple et bien il ne va pas à : SI moyenne = = 1
ALORS .........................;

???

je sais c pa trop clair

a+
0
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Si tu es conscient que ce n'est pas clair (et tu as raison de l'être), alors trouve une autre explication.

Ce n'est pas à nous de deviner quel est ton problème.

Manu
0
Messages postés
19
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
24 février 2006

oula ! j'ai pas eu l'impression de te manquer de respect ... si ? alors pas la peine de prendre ce ton la stp

je viens pas la pour qu'on me resolve directe mes pbs ou qu'on me fasse mon tag ! je viens juste voir si je peux trouver des pistes
bye

jack
0
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
13 mars 2006
18
ON SE CALME !!!

Il ne s'agit pas de manque de respect.
Il est vrai que ce n'est pas trop clair mais quand je vois ton code :

...
STABILITE = 0
If STABILITE = 0 Then
...
else
...
end if

Il est évident que le code après le else ne sera jamais exécuté.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Ah ? Mon ton n'est pourtant pas monté d'un iota ...


Je vais m'exprimer autrement :



Si tu es conscient que ce n'est pas clair (et tu as raison de l'être), alors essayes de trouver une autre explication.

Ce n'est pas à nous de deviner quel est ton problème.



Que pourrais-je dire d'autre ?

Il ne faut pas te sentir agressé à la moindre remarque. On est là
pour s'entraider, mais avec un minimum de dialogue et d'explications,
on y arrive mieux.




Manu
Gentil VBiste.
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,

déjà c'est du VBA donc je ne te serais pas d'une grande aide, mais le premier "truc" qui me saute aux yeux c'est çà :

IcaptFiltreCount = TextBox2.Text

un Double qui reçoit une String, çà peut jouer des tours.....



ensuite je vois un :

While Worksheets("Données Converties").Range("C2").Offset(x1, 0)

pour X1 =0, mais en alors que ni X1Worksheets ne changent.



à voir de plus prêt....



PCPT [AFCK]

VBiste moins Gentil que Manu mais un peu gentil quand même ^^.
0