Agregar filas en función del valor de una celda.

Resuelto
supermajo Mensajes publicados 20 Estado Miembro -  
supermajo Mensajes publicados 20 Estado Miembro -
Hola,

Tengo un archivo de miles de líneas.

En la celda D2, hay un número que indica cuántas líneas - 1, que debo duplicar.
Ejemplo:
si hay 3, Excel debe duplicar la línea 2 veces.
Si hay 5, debe duplicar la línea 4 veces, etc.......

No sé hacer una macro.
¿Alguien puede ayudarme?
Muchas gracias.

3 respuestas

  1. via55 Mensajes publicados 14396 Fecha de registro   Estado Miembro Última intervención   2 759
     
    Hola supermajo

    Pestaña Desarrollador - Visual Basic (o ALT + F11) para abrir el editor de VBA
    Inserción - Módulo luego copiar y pegar la macro siguiente en la página y cerrar el editor
    Sub ajout() Dim Ligne As Long Ligne = Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row For n = Ligne To 1 Step -1 nl = Range("D" & n) - 1 If nl > 0 Then For x = 1 To nl Rows(n + 1 & ":" & n + 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next End If Next End Sub

    Pestaña Desarrollador - Macros - Seleccionar ajout luego Ejecutar

    Saludos
    Vía

    --
    "La imaginación es más importante que el conocimiento."    A. Einstein
    0
    1. supermajo Mensajes publicados 20 Estado Miembro
       
      Buenas noches Via55,

      Gracias por tu rápida respuesta.

      Acabo de probar.
      Se han añadido líneas vacías, pero he recibido un mensaje de error

      "error de ejecución '13'
      Incompatibilidad de tipo

      y cuando hice clic en Desbloquear fue la línea

      nl = Range("D" & n) - 1

      la que estaba en amarillo.

      No entiendo lo que significa.
      ¿Es porque el contenido de las celdas de las columnas no se han duplicado?

      Gracias de nuevo por tu valiosa ayuda.

      Saludos
      0
    2. supermajo Mensajes publicados 20 Estado Miembro
       
      Hola

      Aquí está el enlace al archivo.

      https://www.cjoint.com/c/HLrlHRU3BEz

      La columna D está en formato estándar...
      ¿Es necesario ponerla en formato número?

      Gracias de nuevo
      0
    3. via55 Mensajes publicados 14396 Fecha de registro   Estado Miembro Última intervención   2 759
       
      Re

      El error proviene simplemente de la línea de título que, por supuesto, no es un número
      Sólo hay que modificar la línea de macro
      For n = Línea To 1 Step -1
      por
      For n = Línea To 2 Step -1

      No es necesario modificar el formato de la columna

      Saludos cordiales
      Via
      0
    4. supermajo Mensajes publicados 20 Estado Miembro
       
      Muchas gracias via55.
      Cordialmente
      0