Macro para insertar filas en función de datos de las celdas contiguas

Estoy intentando desarrollar una MACRO que pueda:

En las celdas de la columna A (no sé hasta qué fila exactamente llegará) tengo diferentes descripciones de las compras, cada compra puede tener 1,2,3 o 4 tickets asociados (como se ve en la foto).

Me gustaría hacer una macro en la que si la compra tiene más de un ticket se agregase una fila debajo copiando la misma descripción y poniendo el numero de ticket 2 debajo del ticket 1. Y hacer esto con todos los tickets de manera que si la compra en la celda A1 tiene 3 tickets asociados, aparezca en la celda A1 A2 y A3 la misma descripción y en la B1 B2 Y B3 cada uno de los tickets.

1 Respuesta

Respuesta
1

El siguiente código te servirá:

Sub tickets()
Dim i As Single
i = 1
Range("B1").Select
Do
ultcell = Range("A1").End(xlDown).Address
If ActiveCell.Offset(0, i).Value <> "" Then
importe = ActiveCell.Offset(0, i).Value
descripcion = ActiveCell.Offset(0, -1).Value
Range(ultcell).Offset(1, 0).Value = descripcion
Range(ultcell).Offset(1, 1).Value = importe
i = i + 1
Else
i = 1
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = ""
Range("C1:Z1000").ClearContents
End Sub

Ten en cuenta que Range("C1:Z1000").Clearcontents lo que hace es borrar los datos del rango C1:Z1000, no creo que necesites mas pero lo puedes ampliar. 

Hola, Muchas gracias por tu respuesta!

Pero tengo una duda:

1. Al aplicar el código que me envías, ubica cada compra con el ticket pero no agrupa las compras iguales juntas. ¿Es posible que estén juntas las todas las que tengan la misma descripción?

Muchísimas gracias de nuevo

Para eso te vale una tabla dinámica o la función SUMAR. SI

Cualquiera de las 2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas