Excel - Ejecutar dos Next a la vez

   
Vista:

Ejecutar dos Next a la vez

Publicado por cactus (16 intervenciones) el 03/05/2017 11:39:11
Buenos días

Tengo un problema a la hora de realizar una macro:
Las tablas que voy a exponer a continuación son variables, es decir, su número de filas es variable en función del valor que se escriba en otra celda de la hoja. Por lo tanto, si en esa celda se escribe un 3, en el caso de la primera tabla de las de abajo, la tabla empezaría en la fila 6 y acabaría en la 8 y, en el caso de la segunda, la tabla empezaría en la fila 10 y acabaría en la 12. Esta macro ya está realizada. El problema es el siguiente.

Yo tengo la siguiente tabla:
(Las letras de arriba son las columnas y los números de la izquierda son las filas)

------------------------- L ----------------------------------M
6--------------------- 8000 -------------------------------9%
7--------------------- 4000 -------------------------------6%

Quiero que en esta tabla:

------------------------- C ----------------------------------D
10---------------------- 1 ----------------------------------
11---------------------- 2 ----------------------------------

Lo que quiero es que en la columna D me haga la siguiente cuenta:

D10= L6/(SUMA(L6:L7)*M6)
D11=L7/(SUMA(L6:L7)*M7)
etc si hubiese más

Yo tengo hecha la siguiente macro:

Variables definidas

Dim trafo As Range
Set trafo = Range("G11")
Dim var As Integer
var = WorksheetFunction.Sum(Val(5), trafo)
Dim var1 As Integer
var1 = WorksheetFunction.Sum(Val(9), trafo)

Programa

For I = 6 To var
For J = 10 To var1
Cells(J, 4) = Cells(I, 12) / (WorksheetFunction.Sum(Range("L6:L" & var))*Cells(I, 13))
Next J
Next I

Mi problema es que quiero que los dos next se ejecuten a la vez, porque si no, me pone el mismo resultado en las dos celdas.


Muchas gracias de antemano,

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

Ejecutar dos Next a la vez

Publicado por GMG (119 intervenciones) el 03/05/2017 12:40:41
A mí me cuesta entender que quieres hacer.

No tendría mucho sentido utilizar dos for, y aumentarlos a la vez, para eso sólo utilizas uno.

No sé si esto es lo que buscar:

1
2
3
4
5
6
7
8
9
10
Sub adss()
 
Dim trafo As Range
Set trafo = Range("G11")
 
For x = 0 To trafo - 2
Cells(10 + x, 4) = Cells(6 + x, 12) / (WorksheetFunction.Sum(Range("L6:L" & trafo - 1)) * Cells(6 + x, 13))
Next x
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ejecutar dos Next a la vez

Publicado por cactus (16 intervenciones) el 03/05/2017 12:54:05
Muchas gracias, era lo que buscaba.

Al final me quedó así:

1
2
3
4
5
6
7
8
Dim trafo As Range
Set trafo = Range("G11")
Dim var As Integer
var = WorksheetFunction.Sum(Val(5), trafo)
 
For x = 1 To trafo
Cells(9 + x, 4) = Cells(5 + x, 12) / (WorksheetFunction.Sum(Range("L6:L" & var))*Cells(5 + x, 13)))
Next


La verdad que estaba obsesionada con hacerlo con dos For y podía haberlo hecho mucho más sencillo. Mil gracias!

Un saludo



TEMA SOLUCIONADO
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
Revisar política de publicidad