Visual Basic - Copiar rango de celdas en ciclo for

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 19 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Copiar rango de celdas en ciclo for

Publicado por Felipe (3 intervenciones) el 22/01/2019 20:45:53
Hola , soy nuevo y necesito su ayuda , tengo que copiar las celdas "C23:N23" de la "Hoja1" a la hoja "DATOS IMPORTANTES" en las celdas AM"i" : AX"i" en donde i vaya desde el 3 hasta el 1091 ( Las celdas "C23:N23" van variando debido a que son resultados de un solver )
Adjunto lo que llevo

( Me da error en Range("AM:AX" & i).Select )
1



En esta hoja necesito que se copien las celdas C23:N23 ( estas se actualizan por cada i que corre en el ciclo , ya que antes tengo un solver)
2


Esta es la hoja "DATOS IMPORTANTES" donde debo pegar las celdas primero en la fila 3 hasta que cumpla el ciclo , luego en la fila 4 y asi sucesivamente
3

Atento a sus respuestas , 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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Copiar rango de celdas en ciclo for

Publicado por Antoni Masana (558 intervenciones) el 23/01/2019 08:58:04
La solución al error es esta:

1
2
3
4
5
6
7
8
9
10
For i = 3 to 1091
    Sheets("Hoja1").Select
    Range("C23:N23").Select
    Selection.Copy
    Sheetes("DATOS IMPORTANTES").Select
    Range("AM" & i & ":AX" & i).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    i = i + 1
Next

Otra forma de hacerlo es esta. No veo que sentido tiene copiar la misma línea de datos tantas veces y en las filas impares

1
2
3
4
5
6
7
8
9
10
For i = 3 to 1091  Step 2
    Sheets("Hoja1").Select
    Range("C23:N23").Select
    Selection.Copy
    Sheetes("DATOS IMPORTANTES").Select
    Range("AM" & i).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    i = i + 1
Next

Eso suponiendo que no estés ocultando información, que si lo que haces, por que entre el PASTE y NEXT creo que hay más código oculto que le da sentido a la copia.

Saludo.
\\//_
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
sin imagen de perfil
Val: 3
Ha disminuido su posición en 19 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Copiar rango de celdas en ciclo for

Publicado por Felipe (3 intervenciones) el 23/01/2019 13:26:29
Muchas gracias por tu respuesta , otra consulta ..
Como hago para que el cuadro de dialogo del solver acepte automáticamente la respuesta que me entrega ?

Application.DisplayAlerts = False
Solversolve (True)

Intenté con esos , pero no pasa nada
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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Copiar rango de celdas en ciclo for

Publicado por Antoni Masana (558 intervenciones) el 23/01/2019 17:55:50
Lo siento, no conozco como trabaja el Solver.

No puedo ayudarte.
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