Excel - Duda sobre bucle para macro excel

   
Vista:

Duda sobre bucle para macro excel

Publicado por Luis (2 intervenciones) el 11/06/2009 16:22:03
Pues el tema es el siguiente, estoy haciendo mi primer macro (tengo que hacer 500 regresiones para el analisis de un portafolio de mutual funds para el master y claro hacerlo uno a uno.... asi que me he dicho nunca es tarde para aprender vb):
Tengo el retorno del mercado en la columna a, en la b el fondo de inversion 1, en c fondo de inversion 2 y asi....
Asi que lo que estoy intentando hacer es que macro haga una regresion de cada uno d los fondos contra el mercado. Las regresiones la se hacer donde me pierdo es en el bucle para que me recorra todos los fondos de inversion:

Sub Macro1()

myCount = Selection.Column.Count

For i = 2 To "myCount"

Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$A$1:$A$228"), ActiveSheet.Range("$i$1:$i$228"), False, False, , "", True, False, False, False, , False

Next

End Sub

Donde la estoy cagando? Lo que intento hacer es lo siguiente contar columnas, y como la primera variable es la columna B, i=2 y que las vaya recorriendo hasta el final.

Creo que lo que estoy haciendo mal es: ActiveSheet.Range("$i$1:$i$228")

Alguien sabe como hago eso correctamente??? Cuando i=2 ActiveSheet.Range("$B$1:$B$228")??

Bueno lo dicho, siento la pregunta si es muy estupida pero en todos los tutoriales que encuentro sobre bucles cuando lo utilizan lo hacen con Cell y no con Range y no se si a=1 b=2....

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda sobre bucle para macro excel

Publicado por jcs (494 intervenciones) el 12/06/2009 14:45:59
Muy buenas,

Con toda la prevención del mundo, porque no lo he probado, veo algunos errores:

- miCount es una variable, y al hacer referencia a ella tiene que ir sin comillas
- algo parecido pasa con la i. Donde tú dices Range("$i$1:$i$228"), excel entiende justamente eso, o sea, referido a la columna columna número 9 (la i).

Salvando estas cuestiones, podría quedar de la siguiente manera:

Sub Macro1()

myCount = Selection.Column.Count

For i = 2 To myCount

Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$A$1:$A$228"), ActiveSheet.Range("$” & i & “$1:$” & i & “$228"), False, False, , "", True, False, False, False, , False

Next

End Sub

En cualquier caso, te repito que no sé si funciona. Ya dirás.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar