UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

niangari


Saludos, estoy seguro que es algo muy simple, pero no tengo mucha idea de VBA. Tengo un excel con miles de datos en la columna A. Necesito insertar una fila nueva cada N número de filas. 

Por ejemplo, cada 100 filas insertar 1 (de manera que queden separados los datos en grupos de 100), y esto hasta llegar al final de los datos.

¿me darían una mano con el tipo de código que debería usar? 

Mil gracias!

Igtelo


Hola niangari.

Lee las normas del foro y todo lo que está en avisos.
Sin archivo no trabajamos, luego salen con que no lo quiero así...

También fíjate en el anuncio que se desplaza, tienes un chance.

Saludos
Ignacio Téllez

niangari


Gracias por la respuesta igtelo! No  adjunté el archivo porque no eran más que datos en una columna, pero lo adjunto acá. Tengo otro archivos con los que voy a aplicar lo mismo pero tienen más o menos datos. Entonces la macro debería detenerse cuando llegue al último dato de la columna A.

Mientras estaba probando un código que me sugirieron, el de abajo, pero me dio un error: http://screencast.com/t/CndEEtM3i

Código:
Sub insertaCada100()
  Dim uFila As Long, pFila As Integer, n As Long, donde As String
  pFila = 101
  uFila = Cells(Rows.Count, 1).End(xlUp).Row
  For n = pFila To uFila Step 100
    donde = donde & ",a" & n
  Next
  Range(Mid(donde, 2)).EntireRow.Insert
End Sub


Espero sugerencias, y gracias!! 

Igtelo


Igtelo


Hola niangari.

Te dejo enlace de aporte sobre éste tema.

http://www.universoexcelforo.com/t1580-insertar-una-fila-cada-n-filas-aporte#7821

Saludos
Ignacio Téllez

niangari


Igtelo, es genial. Muchas gracias por el aporte. Acabo de llegar a casa, y sólo me fijé que funciona bien. Mañana me pongo a ver los videos que me compartiste y el código para intentar hacer por mi cuenta variaciones al código.

Una buena noche, y de nuevo, gracias!

Igtelo


Niangari.

Si ya quedó resuelto márcalo como tal.
Te vuelvo a repetir que leas lo que está en avisos, sino te aplicas a lo que marca el foro ya no se te dará apoyo.

Ignacio Téllez

niangari


IGTELO, lo acabo de probar! Perdón por la demora. Funciona bien, gracias! Lo marco entonces como resuelto, y si te parece bien dejo el código que creaste en el aporte, acá, para que si alguien lee en el futuro este tema lo pueda tener a mano.

Para cantidad de registros que indiquemos.
Código:
Sub Insertar()
'Insertar un renglón cada "n" filas
Dim w As Long, numfila As Long

Application.ScreenUpdating = 0
numfila = Application.CountA([A:A]) * 1.03  'Número última fila ocupada en col. "A" y le agregamos un "x" porcentaje

For w = [B1] To numfila Step [B1] + 1
     Range("A" & w + 2).EntireRow.Insert
Next
Application.ScreenUpdating = 1
End Sub

'NOTA:
'Al ir insertando filas el último ciclo(s) del bucle queda mal, por ello agregamos un % (1.03)

'La regla es sencilla:
'A valores altos ==> Porcentaje bajo
'A valores bajos ==> Porcentaje alto

'***Hagan pruebas variando datos***


Otro que también me funcionó:

Para cada 100 filas.
Código:
Sub insertaCada100()
  Dim uFila As Long, pFila As Long, n As Long, donde As Range
  Set donde = Cells(101, 1)
  pFila = 201
  uFila = Cells(Rows.Count, 1).End(xlUp).Row
  For n = pFila To uFila Step 100
    Set donde = Union(donde, Cells(n, 1))
  Next
  donde.EntireRow.Insert
  Set donde = Nothing

End Sub


Saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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