Diferentes entradas para cada imagen del producto.
Pregunta
Tengo una lista de productos con la identificación y el nombre de la imagen.Una entrada por imagen, en lugar de una entrada por producto y las imágenes en columnas, ya que la necesito.Si el archivo tenía solo unas pocas entradas, el procedimiento manual supongo que sería reducir todos los nombres de la imagen para el mismo producto, pegar (transponer) y eliminar las entradas sin nombres.Pero, dado que el archivo tiene más de 100,000 entradas, ¿alguien sabe cómo hacerlo usando VBA?
Ejemplo: Lo que tengo ...
product_id; picture_name
1; picture1.jpg
1; picture2.jpg
1; picture3.jpg
2; picture4.jpg
3; picture5.jpg
3; picture6.jpg
lo que necesito ...
product_id; 1st_picture; 2nd_picture; 3rd_picture...
1; picture1.jpg; picture2.jpg; picture3.jpg
2; picture4.jpg
3; picture5.jpg; picture6.jpg
Agradecemos mucho por adelantado por su ayuda.
Solución
Supongo que esto resuelve su problema
- comparar dos filas consecutivas una por una
- Si dos filas coinciden, tome el valor correspondiente en la segunda columna de la segunda fila, coloque el valor en la segunda columna de la 1ª fila y elimine la segunda fila
- Si no coincide con el paso anterior y vaya a la comparación de las siguientes dos filas.
Aquí está el código
Sub SortPics()
i = 2
Do
Flag = False
VarComp1 = Sheets("YourSheetName").Cells(i, 1).Value
VarComp2 = Sheets("YourSheetName").Cells(i + 1, 1).Value
If VarComp1 = VarComp2 And VarComp2 <> "" Then
Set VarSec1 = Sheets("YourSheetName").Cells(i, 2)
Set VarSec2 = Sheets("YourSheetName").Cells(i + 1, 2)
VarSec1.Offset(0, 1 + j).Value = VarSec2.Value
Sheets("YourSheetName").Cells(i + 1, 1).EntireRow.Delete
i = i - 1
Flag = True
End If
i = i + 1
If Flag = True Then
j = j + 1
Else
j = 0
End If
Loop While VarComp1 <> ""
End Sub
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow