Continuación de la pregunta, Copiar filas dependiendo una celda

Quisiera saber como copiar un rango de celdas dependiendo un valor de otra. Por ejemplo: que se copien n veces dependiendo el valor del numero de pagos toda la fila, desplazando los demás filas y así consecutivamente.

Hoja Normal

Cliente Ciudad Numero de pagos

German     Mexico                    2

Raul          Queretaro               3

Mauricio    Veracruz                 1

Adan         Mexico               #¡VALOR!

Manuel      Mexico                    2

Hoja modificada

Cliente      Ciudad           Numero de pagos

German     Mexico                    2

German     Mexico                    2

Raul          Queretaro               3

Raul          Queretaro               3

Raul          Queretaro               3

Mauricio    Veracruz                 1

Adan         Mexico              #¡VALOR!

Manuel      Mexico                    2

Manuel      Mexico                    2

En ocasiones tengo celdas con #¡VALOR! Y al ejecutar la macro sale error, y quiero que la macro haga lo mismo que hace con el 1 no los tome en cuenta y siga con las demás celdas.

Otra cuestión es que la macro la quiero ejecutar con un botón pero me sale error 13.

Pienso que es por que el ciclo sigue ya que si lo ejecuto paso a paso F8 lo sigue haciendo cíclico, y solo quiero que lo haga solo una ves, por celda.

MACRO:

Sub copiar()
'Por.Dante Amor
    For i = Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Cells(i, "C") > 1 Then
            For j = 1 To Cells(i, "C") - 1
                Rows(i).Copy
                Rows(i).Insert Shift:=xlDown
            Next
        End If
    Next
End Sub

1 respuesta

Respuesta
1

Quieres que se ejecute una vez por celda pero para todos los registros, ¿correcto?

Te anexo la macro,

Sub copiar()
'Por.Dante Amor
    For i = Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Not IsError(Cells(i, "C")) Then
            If Cells(i, "C") > 1 Then
                For j = 1 To Cells(i, "C") - 1
                    Rows(i).Copy
                    Rows(i).Insert Shift:=xlDown
                Next
            End If
        End If
    Next
    Application.CutCopyMode = False
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: copiar
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas