boucle if then else dans une autre boucle if then else

boucle if then else dans une autre boucle if then else - VB/VBA/VBS - Programmation

Marsh Posté le 13-03-2006 à 20:17:01    

voila mon problème, j'ai une boucle if then else et après le then je voudrais mettre aussi une boucle if then else. Alors voila ce que j'ai fait mais ça ne marche pas. Pourriez vous me dire pourquoi?
 
If Sheets("Feuil1" ).Cells(8, 1) = ">" Then
            If Val(Sheets("Feuil1" ).Cells(7, 2 * k + 8)) > Val(Sheets("Feuil1" ).Cells(9, 1)) Then Sheets("Feuil1" ).Cells(9, (2 * k + 8) - (2 * a + 1)) = Val(Sheets("Feuil1" ).Cells(7, 2 * k + 8)) Else Sheets("Feuil1" ).Cells(9, (2 * k + 8) - (2 * a + 1)) = Val(Sheets("Feuil1" ).Cells(9, 1))
            End If
      Else: Sheets("Feuil1" ).Cells(9, (2 * k + 8) - (2 * a + 1)) = Val(Sheets("Feuil1" ).Cells(7, 2 * k + 8)) / Val(Sheets("Feuil1" ).Cells(9, 1))
      End If
 
merci
 
("PS: est ce que c'est correct le = ">" pour savoir si il y a écrit > dans la cellule)

Reply

Marsh Posté le 13-03-2006 à 20:17:01   

Reply

Marsh Posté le 13-03-2006 à 21:32:00    

bonsoir,
ça c'est une putain de formule de la mort !
Tu pourrais commencer par y mettre du With...  
Structurer le tout de ligne en ligne

Code :
  1. If.. Then
  2.   If.. Then
  3.   Else
  4.   End if
  5. Else
  6. End if


Supprimer le " : "
 
indenter (un peu, juste ce qu'il faut : pas trop pour voir le bout de ta ligne)
ça clarifierait un peu ton truc et tu verrais tout de suite ce qui cloche
Déclarer en plus quelques variables complémentaires...^
 
Une bonne macro doit tenir dans ton écran : si tu n'en vois pas le bout il y a des chances que tu n'y arrives pas.
La solution :

Code :
  1. Sub test()
  2. Dim x, y
  3. With Sheets("Feuil1" )
  4. x = Val(.Cells(9, 1))
  5. y = Val(.Cells(7, 2 * k + 8))
  6. If .Cells(8, 1) = ">" Then
  7.   If Val(.Cells(7, 2 * k + 8)) > x Then
  8.       .Cells(9, (2 * k + 8) - (2 * a + 1)) = y
  9.   Else
  10.       .Cells(9, (2 * k + 8) - (2 * a + 1)) = x
  11.   End If
  12. Else
  13.   .Cells(9, (2 * k + 8) - (2 * a + 1)) = y / x
  14. End If
  15. End With
  16. End Sub


A+


---------------
roger
Reply

Marsh Posté le 13-03-2006 à 21:51:12    

merci c'est super simpa. Ca a l'air de marcher. Merci beaucoup. En plus je ne connaissais pas le with sheets("feuil1" ). ça va bien m'arranger.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed