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.
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.