Saltar al contenido

Salto de página cada cierta cantidad de filas


jik

Recommended Posts

Hola @jik, para que te podamos ayudar adecuadamente debes explicar mejor tu problema y adjuntar un archivo excel de ejemplo con lo que esperas de resultado.

Te dejo una idea para que puedas adaptarlo a tu archivo.

Sub insertar_filas()

For i = 1 To 10000 Step 4

Cells(i, 1).EntireRow.Insert Shift:=xlDown

Next

End Sub

saludos.

Enlace a comentario
Compartir con otras webs

Hola. Muchas gracias.

No tengo un archivo pero lo que necesito es algo para uso general.

Lo que tú me has enviado inserta filas. Yo necesito insertas saltos de página cada una cierta cantidad de filas. Por ejemplo: insertar un salto de página cada 40 filas.

Saludos.

Enlace a comentario
Compartir con otras webs

@jik, prueba así.

Sub insertar_filas()

For i = 40 To 1000 Step 40

ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & i + 1)

Next

End Sub

El archivo es por normas del foro, puedes armar un pequeño ejemplo con solo datos ficticios, tómalo en cuenta para futuras consultas.

Saludos.

Enlace a comentario
Compartir con otras webs

Hola de nuevo. La macro me daba un error en la segunda línea pero la corregí cambiando por número de fila.

Sub insertar_filas()

Application.ActiveSheet.ResetAllPageBreaks

For i = 40 To 1000 Step 40

ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(i + 1)

NextDemo.xlsx

End Sub

 

Ahora tengo una complicación adicional que es que tengo que insertar el salto de página cada 40 filas VISIBLES. Con esto quiero decir que si por ejemplo, hay fila ocultas, éstas no se consideren para la  cuenta de líneas del salto de página.

Adjunto el archivo donde he ocultado las filas de 10 a 20 y 70 a 80.

Para que funcione como yo quiero, el salto de página debería ir en la línea 51 (1 + 40 filas + 10 filas ocultas)

El siguiente salto sería de la 52 a la 102 porque también hay 10 ocultas y así sucesivamente.

Aclaro que el número de fila ocultas no es fijo (en mi ejemplo fueron 10 las 2 veces pero podría 5 una vez, 20 otra vez, etc).

 

Enlace a comentario
Compartir con otras webs

@jik, basado en tu ejemplo, con esta modificación debería funcionar sin importar donde o cuantas celdas ocultas tengas.

Sub insertar_filas()
Dim x#, celda As Range

Application.ActiveSheet.ResetAllPageBreaks

For Each celda In Range("A1", Range("A1").End(xlDown)).SpecialCells(xlCellTypeVisible)
    x = x + 1
    If x = 40 Then
        x = 0
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(celda.Row + 1)
    End If
Next

End Sub

Comentas, saludos.

Enlace a comentario
Compartir con otras webs

Imagino que en el archivo donde lo probaste tienes filas en blanco antes del primer salto de linea, creo que ese es el error.

Hace 8 minutos , jik dijo:

No faltará un "Else" o algo así?

No es necesario solo estoy contando 40 lineas de lo contrario simplemente no hace nada.

 

Hace 9 minutos , jik dijo:

Donde termina esta fórmula? Necesitaría darle un fin en, por ejemplo, la fila 10.000

Le indico en esta linea Range("A1", Range("A1").End(xlDown)).SpecialCells(xlCellTypeVisible) que apartir de la celda A1 se vaya a la ultima celda con datos, por eso si tienes alguna celda vacía por ejemplo en la fila 12 hasta ahí llega ciclo for. 

Prueba ahora con esta modificación, no es necesario indicar la cantidad de filas ya que encontrara la ultima fila de la columna A con datos, esto es conveniente si tus datos van a crecer aun mas.

Sub insertar_filas()
Dim x#, celda As Range

Application.ActiveSheet.ResetAllPageBreaks

For Each celda In Range("A1", Range("A" & Cells.Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
    x = x + 1
    If x = 40 Then
        x = 0
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(celda.Row + 1)
    End If
Next

End Sub

De igual manera y por aquello puedes usar esta linea también 

For Each celda In Range("A1:A10000").SpecialCells(xlCellTypeVisible)

Saludos.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola buenas tardes: Por favor me pueden ayudar a realizar lo siguiente. ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo. Es una lista extensa, que filtro desde la columna B. y solo me muestra las filas que me interesan. ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro. Ya que puedo tener muchos datos mas.   Gracias   Prueba filtro y avance.xlsm
    • Muchísimas gracias @Victor7 es realmente increíble. Ahora toca aprender un poco sobre como esta montada esta formula,  pero me ha encantado. Es justo lo que necesitaba. Solo he notado algún fallo cuando los datos no están bien introducidos, por ejemplo hay registro en el punto de control 2 y no en el tres, pero eso en teoría no debería pasar, pero ya sabes como es esto jajaj.  Muchas gracias de verdad. Un saludo
    • Hola, Si lo he entendido bien, te adjunto archivo que creo puede cumplir tus expectativas. En la nueva hoja 'DVU(b)' están los resultados.  Tiene 3 fórmulas: La primera está en A1, que repetirá los títulos de la hoja 'DATAGlobal'.  A medida que se vayan actualizando en esta última hoja, también irán apareciendo automáticamente en la hoja de resultados. Ahora mismo he puesto como rango A1:CB1, pero puede incrementarse de ser necesario. La 2ª fórmula es la de A2:  devuelve las 'Unidades' únicas de la hoja principal.  A este respecto, he colocado como rango de análisis A2:A1900; si prevés que pudiere haber más registros, puedes ampliarlo sin problemas a A2:A19000, o incluso A2:A190000, o más. Y la 3ª fórmula está en B2:  aquí se recogen las cantidades de la columna B que constan en la última aparición de la 'unidad' que se trate, que es la que figura en la celda de la izquierda.  Con la última aparición, me vengo a referir, por ejemplo, que en la fila 4, que recoge la unidad ZCRLA63832, el primer resultado (12,5) lo ha obtenido de B39 y no de A4.  Si no son los mismos, los resultados no serán los esperados.  Y el siguiente resultado (100) es C39.  Esta fórmula también evalúa ahora mismo el rango 2:1900; habrá que ampliarlo dejándolo igual que en la 2ª fórmula, si es el caso. Esta 3ª fórmula, de B2, la puedes copiar horizontalmente hasta donde quieras; siempre devolverá una matriz dinámica con los resultados esperados. Espero haber explicado bien el funcionamiento de la hoja. Saludos, Progreso Unidades (C).xlsx
    • Gracias @Victor7  Adjunto un nuevo documento en el que creo que se puede ver mejor la información con la que tengo que trabajar.  En la primera pagina se muestran las unidades que se fabrican, cada una de ellas con un numero de referencia único.  Estas unidades pasan por un punto de control donde se mide el nivel de carga de una batería, dando el % de carga.  Días mas tarde la misma unidad pasa por un 2º punto de control, creando un nuevo registro con el mismo numero de referencia de la pieza, con los datos de la 1º y la 2º lectura.  Días mas tarde la misma unidad pasa por un 3º punto de control, creando un nuevo registro con el mismo numero de referencia de la pieza, con los datos de la 1º, la 2º y la 3º lectura... así sucesivamente hasta terminar el proceso.  Si, es una cadena de producción y cada unidad fabricada tiene su numero de referencia único y hace el mismo proceso. Además en una cantidad bastante alta, entre 500-600 diarios.   Aquí posiblemente es donde no me haya explicado bien. Si nos fijamos en el nuevo archivo, los puntos de control siempre van a ser los mismos. Pueden variar en un futuro y según alguna circunstancia, pero en principio, las columnas donde tienen que ir los datos serán siempre los mismos.    De nuevo muchas gracias por vuestra ayuda. Es un placer tratar con gente así.  Un saludo jose Progreso Unidades.xlsx
    • Saludos @JasallBcn funciona excelente mil gracias
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.