............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Macro copie una fila y la inserte con datos cada n de filas de un rango

Ver el tema anterior Ver el tema siguiente Ir abajo

Macro copie una fila y la inserte con datos cada n de filas de un rango

Mensaje por Dudador el Jue Feb 09, 2017 9:02 am

Hola a todos,

Con esta macro consigo el objetivo pero seleccionando manualmente la fila donde quiero insertar:
<<<<<<<<<<<<<<<<<<<<<<<<
Copia fila 1 e inserta con datos manualmente:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
' Si no se inserta una fila completa, el código no se ejecuta
If .Columns.Count <> [1:1].Columns.Count Then Exit Sub

' Si no se inserta una sola fila, el código no se ejecuta
If .Rows.Count > 1 Then Exit Sub

Application.EnableEvents = False
 [a1].Copy Cells(.Row, "A") ' Se copia A1
 [b1].Copy Cells(.Row, "B") ' Se copia B1
 [c1].Copy Cells(.Row, "C") ' Se copia C1
End With
Application.EnableEvents = True
End Sub
>>>>>>>>>>>>>>>
¿Alguien sabe como hacer para que repita el proceso automáticamente cada x filas dentro de un rango
determinado?. . . . .

Ejemplo de objetivo:
Copiar datos de la fila 1 e insertalos cada 55 filas, dentro de un rango de 4000 filas que contienen datos, respetando las
filas y datos existentes y repitiendo el ciclo hasta que encuentre la 1ª fila vacía. . .
Como es lógico al final, el número de filas totales aumentará en tantas como se inserten. . . .

Bueno. Gracias anticipadas y perdón pues no sé si me he explicado o enrrollado ya que la síntesis no es lo mío.

Dudador

Masculino Cantidad de envíos : 2
Edad : 40
Ciudad - Pais : españa
Version de Excel : 2003
Fecha de inscripción : 29/04/2011

Volver arriba Ir abajo

Re: Macro copie una fila y la inserte con datos cada n de filas de un rango

Mensaje por moises melgar el Dom Abr 30, 2017 2:36 am

No use el codigo que usas, pero creo que comprendi el objetivo que buscas, es como colocar un encabezado cada determinado numero de filas

La macro usa 2 variables para funcionar
Código:
intervalofilas = 5
insertara una fila cada 5 valores
ejemplo: el intervalo es de 5:
fila 1 es el encabezado
filas 2 al 6 (5 datos)
fila 7 nuevo encabezado

Código:
numdatos = Range("A1").End(xlDown).Row - 2

este valor representa el numero de datos existentes desde A1 hasta la ultima celda vacia de la columna A, le resto -2 para efectos de la formula usada
Macro completa:
Código:
Sub insertar_filas()
Dim intervalofilas, numdatos, filainsertar

intervalofilas = 5
numdatos = Range("A1").End(xlDown).Row - 2

For x = Int(numdatos / intervalofilas) To 1 Step -1
filainsertar = (intervalofilas * x) + 2
    Rows(filainsertar).Insert Shift:=xlDown
    Range("a1:C1").Copy Cells(filainsertar, "A") ' Se copia A1
Next x
End Sub

explicacion de los demas elementos de la macro:
Primero determino el numero de filas a insertar en el rango ya existente Int(numdatos / intervalofilas)
como las filas aumentan hacia abajo cada vez que insertamos filas, empiezo desde la ultima fila a insertar hasta la primera For x = ..... To 1Step -1

Código:
filainsertar = (intervalofilas * x) + 2
Es la ecuacion matematica lineal que cumple con el criterio necesario, el resultado es el numero de fila a insertar
 
Código:
Rows(filainsertar).Insert Shift:=xlDown
'<--se inserta la fila, recordar que va desde la ultima fila hasta laprimera a insertar

Código:
Range("a1:C1").Copy Cells(filainsertar, "A")
' Se copia rango A1 a C1 a la fila insertada

Adjunto Archivo en la hoja1 coloque un boton que ejecuta la macro
Coloque numeros en las filas para que se pueda observar mejor los intervalos
Nota: recuerda siempre guardar tu libro antes de ejecutar una macro

avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 557
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Macro copie una fila y la inserte con datos cada n de filas de un rango

Mensaje por Dudador el Vie Jun 09, 2017 1:25 pm

Perdón por el retraso. Acabo de ver la repuesta.

A falta de ensayarla en mi caso práctico, me parece que solucionará la cuestión y
con un enfoque más sencillo, además. De nuevo gracias por la aportación.

Dudador

Masculino Cantidad de envíos : 2
Edad : 40
Ciudad - Pais : españa
Version de Excel : 2003
Fecha de inscripción : 29/04/2011

Volver arriba Ir abajo

Re: Macro copie una fila y la inserte con datos cada n de filas de un rango

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.