Excel - CONCATENAR VALORES DE FILAS NO REPETIDOS Y ELIMINAR FILAS

 
Vista:

CONCATENAR VALORES DE FILAS NO REPETIDOS Y ELIMINAR FILAS

Publicado por Ines (1 intervención) el 16/04/2020 15:11:41
Buenos dias,

Tengo una matriz de 414 filas y 9 columnas; las columnas son: OPERACION, TIPO, PLATAFORMA, CLAVES, APLICADO A, REFERENCIA, €/UD, UD/COCHE Y POLIVALENCIA. Cada fila tiene un valor de REFERENCIA que se repite y otras veces no. Lo que quiero es encontrar los valores de REFERENCIA que se repiten y eliminar el resto, pero ojo porque aunque se repita la REFERENCIA, si la fila repetida tiene valores diferentes de CLAVES, APLICADO A , PLATAFORMA, UD/COCHE O OPERACION quiero que en la fila que se quede me aparezcan concatenados.
Se como se concatena en vba pero no se la programacion dentro del 'For' para conseguir este resultado. Os paso el codigo que tengo creado hasta ahora:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Sub Copiar_listado()
'Inicio variables:
Dim i As Integer
Dim j As Integer
Dim lista() As Variant
Dim resum() As Variant 'esta matriz sera la final que contenga el resultado con filas eliminadas y valores 'concatenados
Dim temporal() As Variant
'Cuenta el numero de filas que tiene la columna:
Sheets("Listado").Select
filaslista = Range("B3", Range("B3").End(xlDown)).Rows.Count
ReDim lista(1 To filaslista, 1 To 16)
ReDim resum(1 To filaslista, 1 To 9)
ReDim temporal(a To filaslista, 1 To 9)
'Creo matriz con todos los valores de Listado: lo que he hecho ha sido copiar la matriz de la hoja 'Listado a la matriz lista y de la matriz lista guardar en la matriz temporal las columnas que me interesan 'que son justo las 9 columnas de las que os hablo.
For i = 1 To filaslista
    For j = 1 To 16
        lista(i, j) = Cells(i + 2, j + 1).Value
    Next j
Next i
'Creo matriz con valores de Resumen:
m = 1
For i = 1 To filaslista
        temporal(i, 1) = lista(m, 1)
        temporal(i, 2) = lista(m, 2)
        temporal(i, 3) = lista(m, 4)
        temporal(i, 4) = lista(m, 5)
        temporal(i, 5) = lista(m, 6)
        temporal(i, 6) = lista(m, 8)
        temporal(i, 7) = lista(m, 12)
        temporal(i, 8) = lista(m, 13)
        temporal(i, 9) = lista(m, 16)
        m = m + 1
Next i
 
'Quitar repetidos de temporal:
m = 2 'en la fila m=1 estan los titulos de cada columna que os mencionaba arriba
For i = 1 To filaslista
    n = 1
    For j = 1 To 9
    valor = temporal(m, 6).Value
        If temporal(i, 6).Value = valor Then
'AQUI HE INTENTADO MUCHAS VERSIONES PERO NINGUNA FUNCIONA: MI INTENCION ES BUSCAR 'VALOR' ENTRE TODAS LAS FILAS DE LA COLUMNA REFERENCIA ENCONTRAR REPETIDAS Y CONCATENAR VALORES DEL RESTO DE COLUMNAS SI NO SE REPITEN.
        End If
        n = n + 1
    Next j
    m = m + 1
Next i
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