Jump to content
Milton Cordova

ANSWERED Insertar filas cada cierto rango

Recommended Posts

Saludos deseo insertar 5 filas en cada una de esta plantillas empezando desde la fila 49 luego la 122 y 195 así hasta el final.
Las plantillas están hasta la fila 35501
Gracias por su ayuda como siempre excelente

Edited by Milton Cordova
no puedo subir adjunto

Share this post


Link to post
Share on other sites

por "planitllas" te refieres a varias hojas en un libro ? (o a determinada hoja de varios libros ?)

todas tienen datos hasta la fila 35501 ? (o hay que averiguar hasta donde llegan los datos en cada una ?)

todas las inserciones inician en la fila 49 y son a cada 73 filas ? (o te quedaron "detalles en el tintero" ?)

Share this post


Link to post
Share on other sites

en tu modelo no hay datos, solo un "formato" con bordes y fondo, por lo que no es adivinable cuantos "grupos" de información vas a administrar (o hasta cual fila hay datos ?)

si vas a usar bucles, procura que NO realicen "la misma acción" en cada paso, define "el rango" y ejecuta la acción en un solo paso

Sub insertaXfilasCadaY()
  Dim ini As Long, x As Long, y As Long, grupos As Long, hoja As Worksheet, donde As Range, n As Long
  ini = 49 ' la fila con el primer grupo (OBLIGADO) '
  x = 5 ' cuantas filas se insertan en cada grupo '
  y = 73 ' cada cuantas filas hay un grupo diferente '
  grupos = 5 ' el numero de grupos a procesar ' 485 para la fila 35501
  Set donde = Cells(ini, 1).Resize(x)
  For n = 1 To grupos
    Set donde = Union(donde, Cells((n * y) + ini, 1).Resize(x))
  Next
  donde.EntireRow.Insert
  Set donde = Nothing
End Sub

 

Share this post


Link to post
Share on other sites

Saludos estimado Hector adjunto un ejemplo de uno de los formularios con datos ya que al ser 500 formularios no se puede enviar debido al peso, el rango va hasta la fila 35501.

Corri la macro funciona perfecto solo para el primer formulario, esto equivale a hacerlo manualmente, por lo que te solicito muy gentilemnte puedas ayudarme para que esto haga para las 500 plantillas.

Gracias

INSERTAR FILAS 3.xls

Share this post


Link to post
Share on other sites

Hola  Milton Cordova,

Ya revise tu ejemplo y hay algo inconsistente en el, PODRIAS AYUDARME  con poner 5 formularios completos por favor, ya que trate de repetir los 2 que pusiste hacia abajo y no me da...y    por favor pon un recuadro en cada Formulario, para no tener la duda donde empieza y donde termina.

NOTA IMPORTANTE: Es un error llevar a acabo así la información, es mejor tratar la información en 1 Base de datos y con ella se genera el Formulario..., pero si insistes solo haz el favor que te pido.

Saludos.

 

 

 

Share this post


Link to post
Share on other sites
Hace 21 horas, Milton Cordova dijo:

adjunto un ejemplo de uno de los formularios con datos ya que al ser 500 formularios no se puede enviar debido al peso, el rango va hasta la fila 35501

(lo mismo en ambos, por si hubiera dudas ?)

considerando que no eres alguien que "recién inicia" con excel (y sus macros), ya debieras entender que no es sano consultar como lo haces:

- en diferentes foros (prácticamente la misma consulta) PERO...
- proporcionando información diferente (ademas de insuficiente)

inicialmente pides insertar 5 filas a cada 73 (sin decirlo) y hasta la fila 35501 "en varias plantillas"
- iniciando en la fila 49, y después en las filas 122, 195... (y así hasta el final, es decir a cada 73 filas)
- en otros datos comentas que son hasta la fila 19711

en tu muestra hay solo una hoja, con solo dos -pre-formatos (solo uno con datos) y señalas las filas 49 y 120
- esto seria a cada 71 filas (NO a cada 73 como inicialmente referías)

sigue sin ser claro si por "plantillas" te refieres...
- a varias hojas en un solo libro-plantilla
- o a varios libros con una (in)determinada hoja-plantilla

si explicas lo anterior, con total claridad, no seria necesario que adjuntes un (inexplicable) modelo en excel

la parte más importante de una instrucción, es el resultado que se debe obtener
claridad, detalle, procedimiento, resultado

de la claridad en la consulta, se obtiene la claridad en el detalle
de la claridad en el detalle, se obtiene la claridad del procedimiento
de la claridad en el procedimiento, se obtiene el resultado esperado

Share this post


Link to post
Share on other sites
En 17/11/2019 at 12:40 , Leopoldo Blancas dijo:

Hola  Milton Cordova,

Ya revise tu ejemplo y hay algo inconsistente en el, PODRIAS AYUDARME  con poner 5 formularios completos por favor, ya que trate de repetir los 2 que pusiste hacia abajo y no me da...y    por favor pon un recuadro en cada Formulario, para no tener la duda donde empieza y donde termina.

NOTA IMPORTANTE: Es un error llevar a acabo así la información, es mejor tratar la información en 1 Base de datos y con ella se genera el Formulario..., pero si insistes solo haz el favor que te pido.

Saludos.

 

 

 

 

En 17/11/2019 at 12:40 , Leopoldo Blancas dijo:

Hola  Milton Cordova,

Ya revise tu ejemplo y hay algo inconsistente en el, PODRIAS AYUDARME  con poner 5 formularios completos por favor, ya que trate de repetir los 2 que pusiste hacia abajo y no me da...y    por favor pon un recuadro en cada Formulario, para no tener la duda donde empieza y donde termina.

NOTA IMPORTANTE: Es un error llevar a acabo así la información, es mejor tratar la información en 1 Base de datos y con ella se genera el Formulario..., pero si insistes solo haz el favor que te pido.

Saludos.

 

 

 

 

Share this post


Link to post
Share on other sites

Saludos Leopoldo, adjunto envió ejem. con 5 platillas según lo que me pides.

Se trata de un libro en el cual tengo una hoja con 500 platillas de 71 filas cada una.

Lo que deseo es ahorrarme el tiempo de ir insertando 5 filas en cada una de las 500 plantillas de una hoja de un libro.

las 500 plantillas van desde la fila 2 hasta la 35501 y cada una tiene 71 filas, o sea que

la primera al empezar desde la 2 va hasta la 72,

la segunda desde la fila 73-143,

la tercera 144-214 asi sucesivamente hasta la 35501.

la parte que  deseo insertar empieza en la primer plantilla en la fila 49, la segunda desde la 120 pero como se supone que se insertaron 5 filas en la segunda plantilla sería desde la fila 125, la tercera deberia insertarse desde la  pero debido a las filas insertadas en la primera y segunda debe insertarse desde la fila 201 y asi sucesivamente.

las plantillas estan con datos, no me permite subir ejemplo debido al peso.

En todo caso creo que se podría hacer mediante una macro para toda la hoja ya que la macro que envié solo funciona para la primer plantilla y tendría que ir creando para cada platilla una nueva macro.
Por esto me disculpo al parecer es cuestión de tiempo pero si se puede ahorralo que mejor.

Gracias disculpas por descripcion no clara sobre el tema enviado

INSERTAR FILAS 4.xls

Share this post


Link to post
Share on other sites
Hace 59 minutos , Milton Cordova dijo:

las 500 plantillas van desde la fila 2 hasta la 35501 y cada una tiene 71 filas

... la parte que  deseo insertar empieza en la primer plantilla en la fila 49, la segunda ...

... disculpas por descripcion no clara sobre el tema enviado

lamento insistir en las incongruencias de tus consultas (pero Leopoldo suele ser más "rudo" en sus reconvenciones, así que...) según este "nuevo" adjunto...

- la primera inserción ocurre en la fila 54 (NO en la fila 49)
- el segundo grupo está 73 filas abajo (NO 71 filas)
- el resto... (lo siento, solo pusiste 5 "plantillas ?")

si estas discrepancias ocurren a lo largo de las 500 plantillas (?), una (posible) opción es ubicar en la columna "C" la ocurrencia del texto "TRANSPORTE" y "regresar" DOS filas (te convence ?)

Share this post


Link to post
Share on other sites
Hace 2 horas, Héctor Miguel dijo:

lamento insistir en las incongruencias de tus consultas (pero Leopoldo suele ser más "rudo" en sus reconvenciones

Si..., dicen que soy de "macha corta", es que me enseñaron a no hacer perder el tiempo a los demás...

Hace 2 horas, Héctor Miguel dijo:

una (posible) opción es ubicar en la columna "C" la ocurrencia del texto "TRANSPORTE" y "regresar" DOS filas (te convence ?)

Si, eso es excelente... 

Espero no te cambie la palabra o la columna o no son 2 filas menos sino 3...😂😂😂

 

Suerte Héctor Miguel ...Cruza los dedos...!!!

  •  
Edited by Leopoldo Blancas

Share this post


Link to post
Share on other sites

Desde luego me parece la mejor opcion ubicar TRANSPORTE y regresar 2 filas, para esto como deberia ir ma macro finalmente para no molestar mas con estas  consulta que debe ser facil para ustedes que son Masters.

Gracias

Share this post


Link to post
Share on other sites
Hace 21 horas, Milton Cordova dijo:

me parece la mejor opcion ubicar TRANSPORTE y regresar 2 filas

con los detalles ya comentados en el curso de esta consulta, probé el siguiente código con tus "plantillas" copiadas hasta la fila 35501 y resolvió en un abrir y cerrar de ojos

cópialo > pégalo en un módulo de código estándar y prueba, cuando estés conforme, ya puedes grabar el archivo

Sub insertaXfilasCadaY()
  Dim a As Long, m, n As Long, x As Long, y As Long, donde As Range
  a = 5 ' cuantas filas se insertan en cada grupo '
  With ActiveSheet
    m = Intersect(.UsedRange, .Columns(4)).Address: End With
  Names.Add "saltos", "=if(" & m & "=""transporte"",row(" & m & ")-2)"
  m = Filter([transpose(saltos)], False, False): Names("saltos").Delete
  n = LBound(m): y = UBound(m)
  Set donde = Cells(m(n), 1).Resize(a)
  For x = n + 1 To y
    Set donde = Union(donde, Cells((m(x)), 1).Resize(a)): Next
  donde.EntireRow.Insert: Set donde = Nothing
End Sub

nota: tu archivo contiene vínculos externos, varios nombres con error y algunos que parecen venir de macros de lotus-123 para d.o.s., esto confirma que no eres tan "novicio" en esto del excel y sus macros (?)

sugiero estudiar lo sugerido con el debido detenimiento, tiene instrucciones que ya debieran formar parte de tu léxico de programación (después de más de 10 años ?)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy