Excel - copiar una fila tantas veces como indique una celda de la misma fila.

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

copiar una fila tantas veces como indique una celda de la misma fila.

Publicado por TRI FOR (2 intervenciones) el 20/07/2019 12:47:59
Buenas

tengo que imprimir etiquetas de los productos a vender y el programa que utilizo me genera un fichero .csv con una lineas por cada producto y en dicha linea me indica el nº de unidades compradas y por tanto de las que debo sacar etiqueta.


necesitaria poder replicar dichas lineas tantas veces como nº de unidades indique el campo Cantidad.

Idealmente seria copiarlas en la misma hoja sin generar filas vacias para poder posteriormente tratar directamente la informacion generada e imprimirla desde el mismo excel

muchas gracias
Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

copiar una fila tantas veces como indique una celda de la misma fila.

Publicado por JuanC (1237 intervenciones) el 29/07/2019 15:15:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Option Explicit
 
Sub test()
Dim cell As Range, rng As Range
Dim n&, fila&
Dim ws2 As Worksheet
 
Application.ScreenUpdating = False
Set ws2 = Hoja2
Set rng = Hoja1.Range("A1:A4") 'columna cantidad
 
fila = 1
ws2.Cells.Clear
 
For Each cell In rng
    n = cell.Value
    cell.EntireRow.Copy
    ws2.Activate
    ws2.Rows(fila & ":" & fila + n - 1).Select
    Selection.Insert Shift:=xlDown
    fila = fila + n
    Hoja1.Activate
Next
 
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

copiar una fila tantas veces como indique una celda de la misma fila.

Publicado por TRI FOR (2 intervenciones) el 31/07/2019 20:23:41
Buenas JuanC

muchas gracias por su respuesta.

seguro que hay algo que no hago bien, de hecho no he hecho nada mas que copiar el texto y ejecutarlo, y da un error en la instruccion 17 cell.EntireRow.Copy

bueno , miento si que he hecho algo que es crear una hoja llamandola Hoja2 al verla referenciada en Set ws2 = Hoja2

mas alla de eso, no entiendo por que hace un rango de A1:A4 indicando que comentario columna cantidad, no se si se refiere que sustituya ese rango por el de las cantidades (en el ejemplo seria C2:C7, pero igualmente ese rango variara en funcion de las lineas del albaran de entrada.


no puedo decirle mas por que tampoco entiendo mucho mas.

pero creo que deberia primero saber cuantas lineas son las que hay que leer y posteriormente repetir cada una de esas lineas tantas veces como indique el numero que esta en la columna C (cantidad).

muchas gracias por su tiempo


Captura2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

copiar una fila tantas veces como indique una celda de la misma fila.

Publicado por JuanC (1237 intervenciones) el 01/08/2019 13:49:55
El error 13 como bien dice el msg es un problema con los tipos de datos.
Suele suceder que hay un texto en un lugar donde debería haber número.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector Madriz
Val: 575
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

copiar una fila tantas veces como indique una celda de la misma fila.

Publicado por Hector Madriz (137 intervenciones) el 01/08/2019 00:31:12
Buen día, prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub GenerarEtiquetas()
    Dim RangoCant, Rango As Range
    F = 2
    Set RangoCant = Hoja1.Range("A2:A5")
    ColumnaEtiq = 2
    For Each Rango In RangoCant
        If IsNumeric(Rango) Then
           For Cont = 1 To Rango
               Sheets("Hoja2").Cells(F, 1).Value = Cells(Rango.Row, ColumnaEtiq)
               F = F + 1
           Next Cont
        End If
    Next
End Sub

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar