Simplification boucle if

Résolu
treza88 Messages postés 36 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 23 octobre 2010 - 21 nov. 2005 à 20:05
treza88 Messages postés 36 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 23 octobre 2010 - 21 nov. 2005 à 21:25
Bonjour

quelqu'un pourrait il m'aiguiller pour imbriquer et simplifier ces deux boucle si c'est possible:

'charge la hauteur du deuxième tiroir
Range("Tiroir2").Value = tiroir2.Text
For Each tiroir_5 In zone2.Controls
If tiroir_2.Visible = True Then
Range("Tiroir2").Offset(0, -1).Value = tiroir_2.Caption
Else
Range("Tiroir2").Offset(0, -1).Value = ""
End If
Next

'Détermine si le tiroir2 et placé tout en bas du caisson
For Each tiroir_5 In zone2.Controls If chb2.Visible True And chb2.Value True Then
Range("Tiroir2").Offset(0, 1).Value = "Tout en bas"
Else
Range("Tiroir2").Offset(0, 1).Value = ""
End If
Next

Merci d'avance

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 nov. 2005 à 21:13
Ben alors pourquoi faire une boucle pour faire x fois la même chose, autant le faire qu'une seule fois, ca suffira !


Remarque : c'est la même chose pour la première boucle en fait : tu
n'utilise pas ta variable de boucle, donc tu fait aussi x fois la même
chose !



Donc ton code devient :

Range("Tiroir2").Offset(0, -1).Value = iif(tiroir_2.Visible, tiroir_2.Caption, "")

Range("Tiroir2").Offset(0, 1).Value = iif(chb2.Visible And chb2.Value, "Tout en bas", "")



Et tout de suite, c'est plus rapide !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 nov. 2005 à 20:42
J'ai du mal à comprendre ta deuxième boucle : à quoi te sert-elle puisque tu n'utilise jamais tiroir_5 ??? La je comprends pas !
_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
treza88 Messages postés 36 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 23 octobre 2010
21 nov. 2005 à 20:52
Ok

t'as question est pertinente c'est vrai que tiroir_5 n'est pas utilisé mais si je met tiroir_2 se qui me parettrait plus logique ça ne fonctionne pas comme je le veux alors j'ai pas encore trouvé d'ou ça venait mais ça fonctionne comme ça, mais j'ai encore beaucoup de choses à apprendre en VBA et je suis certainement passé à coté de quelque chose.


Voila pour te repondre DarK Sidious
0
treza88 Messages postés 36 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 23 octobre 2010
21 nov. 2005 à 21:25
Ok DarK Sidious

Je viens de le tester et c'est pas que je doutais de ton code mais je l'avais jamais vu jusque là, le iif était completement unconnu de ma part.


Entout cas je remercie car ça simplifie enormément mon code et c'est sur en voyant ça j'ai encore du boulot en programmation
0
Rejoignez-nous