Solucionar el siguiente bucle en VBA Excel
Hola,
En primer lugar agradecer a quien me consiga orientar para conseguir realizar el bucle que expongo a realizar con VBA Excel. Tengo un poco de experiencia, pero no la suficiente.
El caso es este:
1.- En el proyecto tengo 10 formularios cuyo nombres son: n1, n2, n3 ........n10.
2.- En cada uno de estos formularios tengo 30 TextBox con estos nombres:
zz13, zz14,zz15
zz23, zz24, zz25
zz33, zz34, zz35
.
.
zz103, zz104, zz105
3.-Quiero pasar en bucle algunos de los TextBox de algunos formularios (el "algunos"
depende de otras condiciones que no expongo aquí para no enrollarme y
porque no son mi problema) de tal manera que cada uno de esos TexBox tomen los valores que le indico en otros TextBox que están situados en otro formulario (for001). Por ejemplo, sería así:
PARA EL FORMULARIO n1:
* los Texbox zz13, zz23 .... Zz103 del form. n1 tomarían el valor de otro texbox llamado gg1
* los Texbox zz14, zz24 .... Zz104 del form. N1 tomarían el valor de otro texbox llamado sg1
* los Texbox zz15, zz25 .... Zz105 del form. N1 tomarían el valor de otro texbox llamado vg1
PARA EL FORMULARIO n2:
* los Texbox zz13, zz23 .... Zz103 del form. N2 tomarían el valor de otro texbox llamado gg2
* los Texbox zz14, zz24 .... Zz104 del form. N2 tomarían el valor de otro texbox llamado sg2
* los Texbox zz15, zz25 .... Zz105 del form. N2 tomarían el valor de otro texbox llamado vg2
.
.
PARA EL FORMULARIO n10:
* los Texbox zz13, zz23 .... Zz103 del form. N10 tomarían el valor de otro texbox llamado gg10
* los Texbox zz14, zz24 .... Zz104 del form. N10 tomarían el valor de otro texbox llamado sg10
* los Texbox zz15, zz25 .... Zz105 del form. N10 tomarían el valor de otro texbox llamado vg10
4.- Lo que consigo hacer yo es esto:
For i= 1 To tb001.Value
For j = 3 To 5
nombre = "zz" & i & j
For Each UserForm In UserForms
For Each CommandButton In n1.Controls
If CommandButton.Name = nombre Then
Select Case j
Case Is = 3
CommandButton.Value = gg1.Value
Case Is = 4
CommandButton.Value = sg1.Value
Case Is = 5
CommandButton.Value = vg1.Value
End Select
End If
Next CommandButton
Next UserForm
Next j
Next i
Como ven, esto lo hago para el formulario n1 y tendría que repetirlo para el n2 y demás. Pero quiero que lo haga de forma automática. Intento hacer esto, pero no me deja:
* For Each CommandButton In n & i.Controls
* CommandButton.Value = gg & i.Value
Tal vez sólo es un error gramatical.
¿Qué solución hay para esto?
Como he dicho, agradezco de antemano la ayuda.