Seleccionar celdas de diferentes filas para formar columna

Tengo que entregar un reporte de mis facturas el cual esta realizado de forma horizontal factura por factura aparece o no, renglones con mis servicios. Tengo que entregar columnas de cada servicio con esos renglones. Espero me puedan ayudar gracias.
flete 50
entrega 20
seguro 10
flete 80
seguro 50
flete 30
entrega 20
necesito
flete entrega seguro
50 20 0
80 0 50
30 20 0

1 respuesta

Respuesta
1

Aquí te mando un código... para ejecutarlo selecciona primero el rando donde esta la información... en tu ejemplo, desde "flete" (en primera linea) hasta "20" (en ultima linea)

Saludos,

Jaime Segura

Sub ConvertirAVariasColumnas()
Dim n As Integer
Dim Títulos()
Set Rango = Selection
n = InputBox("¿Cuántas columnas tendrá la información?")
ReDim Títulos(n)
For i = 1 To n
Títulos(i) = InputBox("Introduzca el titulo de la columna " & i)
Next i
destino = InputBox("A partir de que celda desea copiar la información?")
FilaIni = Range(destino).row
Coluini = Range(destino).Column
Range(destino).Select
For i = 1 To n
Cells(FilaIni, Coluini + i - 1) = Títulos(i)
Next i
Filarel = 1
nuevalinea = True
i = 1
Do
If nuevalinea Then
For j = 1 To n
Cells(FilaIni + Filarel, Coluini + j - 1) = 0
Next j
End If
For k = 1 To n
If Rango.Cells(i, 1) = Títulos(k) Then
If Cells(FilaIni + Filarel, Coluini + k - 1) = 0 Then
Cells(FilaIni + Filarel, Coluini + k - 1) = Rango.Cells(i, 2)
nuevalinea = False
Else
Filarel = Filarel + 1
nuevalinea = True
End If
End If
Next k
If Not (nuevalinea) Then
i = i + 1
End If
Loop Until i > Rango.Rows.Count
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas