Probleme VBA incrémentation

Bonjour, j'ai un petit probleme sur VBA. Je suis débutant et j'ai une boucle qui ne s'arrête pas... Pourriez vous me dire comment incrémenter pour que la boucle s'arrête et que cela fasse décaler mon k puis mon i. Apparemment la boucle For ne le fait pas tte seule. Il faudrait sans doute que je glisse un k=k+1 et i=i+1 qqpart.

merci d'avance

Sub Corridor()

Dim i, k As Integer

For i = 1657 To 2963

For k = 1 To 47

While Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value And Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value

Cells(i, 3).Value = 19999

Wend

Cells(i, 3).Value = 8

Next k

Next i

End Sub

je n'ai pas testé donc ma réponse ne sera peut être pas pertinente mais essaies avec Do... Loop...

comme ceci:

Sub Corridor() 

Dim i, k As Integer 

For i = 1657 To 2963 
For k = 1 To 47 

Do
While Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value And Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value 
Cells(i, 3).Value = 19999 
Wend 
Cells(i, 3).Value = 8 
Next k 
Next i 
Loop

End Sub

Souri84

Sub Corridor()

Dim i, k As Integer

For i = 1657 To 2963

For k = 1 To 47

Do

While Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value And Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value

Cells(i, 3).Value = 19999

Wend

Cells(i, 3).Value = 8

Next k

Next i

Loop

End Sub

Salut Front33,

Je ne sais pas ce que tu essayes d'obtenir par ce code. Chez moi ça boucle bien ton code initial. Je l'ai testé sur excel 2002,2003 et 2007.

Cdlt,

chez moi je le lance, il ne s'arrête pas et je dois meme faire ctrl alt suppr loooolll

sur un autre forum on m'a dit que dans l'état actuel du code ni la variable i ni la variable k ne bougeait... La boucle For ne semble pas permettre de les décaler car je n'ai pas incrémenter!!

merci encore pr votre aide

Re,

Si tu peux envoyer le fichier qui va avec ce code et demander ce que veux comme résultat, on va te pouvoir proposer une solution. Je confirme que la macro s'arrête automatiquement en bouclant.

Pour info, les boucles For s'incrémentent automatiquement par le mot clé Next.

Cdlt,

Il est trop lourd mais il est tout simple:

colonne A des dates colonne B des valeurs

et ma petite macro

c tout/....

Re,

Je suis navré de ne pas pouvoir t'aider plus. Mais vu la syntaxe de ton code ne fallait-il pas remplacer le code suivant :

While Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value And Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value 

Cells(i, 3).Value = 19999 

Wend 

Cells(i, 3).Value = 8 

par ce code :

If Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value And Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value Then

  Cells(i, 3).Value = 19999 

else

  Cells(i, 3).Value = 8 

End if

Cela serait plus logique. Mais toujours pareil, en connaissant pas la finalité ........

oui c vrai je suis un nul sur le coup

juste un dernier probleme...mon produit marche comme un tunnel cad que des que tu sors du cannal (= ne repond pas aux deux conditions dans mon code) alors cela doit afficher 8 et arreter puis passer au i suivant...

la ça ve faire pour chaque i, tous mes k et ne retenir que le dernier...

on y est presque....

heeeelp me please...

il ne me reste plus qu'à arrêter cette boucle de k si elle trouve ne serait ce qu'une valeur qui ne repond pas à mes deux conditions (et afficher 8)

MEEERRRCIII

j'ai modifié mon code mais comme réponse j'ai toujours 19999 et jamais 8, or je sais que de temps en temps je devrais avoir 8 car mon canal est cassé...

Ou pensez vous que j'ai pu me tromper?

Sub Corridor()

Dim i As Integer

Dim k As Integer

For i = 1657 To 2963

For k = 1 To 47

If Cells(i - (30 * k), 2).Value > 0.5 * Cells((i - (4 * 360)), 2).Value Then

ElseIf Cells(i - (30 * k), 2).Value < 1.5 * Cells((i - (4 * 360)), 2).Value Then

ElseIf Cells(i - (30 * k), 2).Value <> 8 Then

Cells(i, 3).Value = 19999

Else

Cells(i, 3).Value = 8

End If

Next k

Next i

End Sub

MERRRRCIIIIIIIIIIIIIIII

Rechercher des sujets similaires à "probleme vba incrementation"