[Optimalisation] Vitesse boucle ctrl VBA

Maxoverfred

XLDnaute Occasionnel
Bonjour à tous, je m'étonne de la chose suivante

J'ai deux boucles conditionnelles sur tous mes contrôles de mon form (290 !)

La première regarde si je peux afficher le contrôle
-----------------
For Each ctrl In usrinput.Controls
With ctrl
If .Name Like 'lbl_*' Then
ft = Find_First(Right(ctrl.Name, Len(ctrl.Name) - 4), 'Rules', False)
If ft = '' Then
Else
If ThisWorkbook.Worksheets('Rules').Range(ft).Offset(0, Publiclistindexaction).Value _
= 'ungrey' Then
' fg = Find_First(.Name, 'Labels', False)
Select Case (.Tag)
Case (Publiccountry)
.Visible = True
Case Else
.Visible = False
End Select
Else
.Enabled = False
End If
End If
end if
End with
Next ctrl
------------------


La deuxième traduit le label dans la langue définie
--------------------
Function TranslateLabels()
Dim ft As String
Dim vctrl As Control

For Each ctrl In usrinput.Controls
With ctrl
If .Name Like 'lbl_*' Then
If ft = '' Then
Else
.Caption = ThisWorkbook.Worksheets('Labels').Range(ft).Offset(0, Publiclistindexlanguage).Value
End If
End If
End With
Next ctrl
End Function
---------------------

Par un souci de vitesse, j'ai imbriqué les deux en une mais je me rends compte que je ne gagne rien du tout en vitesse.. alors que j'avais l'impression que faire deux boucles sur 290 contrôles deux fois au lieu d'une est quand même moins rapide..


Quelqu'un a une idée?

Merci et bonne journée.
 

Creepy

XLDnaute Accro
Bonjour le Forum, Maxoverfred,

j'essaierais ca dans ma boucle 2 :

Code:
Function TranslateLabels() 
Dim ft As String 
Dim vctrl As Control 

For Each ctrl In usrinput.Controls 
With ctrl 
If .Name Like 'lbl_*' and ft <> '' Then 
 .Caption = ThisWorkbook.Worksheets('Labels').Range(ft).Offset(0, Publiclistindexlanguage).Value 
End If 
End With 
Next ctrl 
End Function

Je pense qu'il faut pour gagner en rapidité essayer de jouer avec les AND et OR pour gagner des boucles.

Ce sont les boucles qui te ralentissent le code à tester à chaque fois.

++

Creepy
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 895
Membres
103 982
dernier inscrit
krakencolas