Mejorar el tiempo de ejecución de un For Each c In Me.Controls
Tengo un formularios con varios objetos y 231 son txt que les quiero pasar por parámetro un valor. Esto lo consigo pero la ejecución es de 4 seg. Se podría agilizar el tiempo de ejecución os envío el código.
'Congelamos la pantalla hasta que termine el procedimiento
Me.Painting = False
tipoMaq = ""
T = "M"
i = 0
j = 0
For j = 1 To 12
'Pasamos el tipo de maq si es (8 y 9) vertical u (resto) horizontal
If j = 8 Or j = 9 Then
tipoMaq = "V"
Else
tipoMaq = "M"
End If
For i = 1 To 3
Select Case i
Case Is = 1
T = "M"
Case Is = 2
T = "T"
Case Is = 3
T = "N"
End Select
'recorremos los controles
For Each c In Me.Controls
' 'Si el contro es =
Select Case c.name
Case Is = "txt_" & tipoMaq & j & "_" & dia & "_" & T
'ponemos el foco en el control para poder usarlo
c.SetFocus
Select Case T
'Nos situamos en el txt posición turno
Case Is = "M"
c.Text = txtHoras
Case Is = "T"
c.Text = txtHoras
Case Is = "N"
c.Text = txtHoras
End Select
Exit For
End Select
Next
Next i
Next j
Me.Painting = True