Entradas diferentes para cada imagem do produto
Pergunta
Tenho uma lista de produtos com o ID e o nome da foto.Uma entrada por foto, em vez de uma entrada por produto e as fotos em colunas conforme necessário.Se o arquivo tivesse apenas algumas entradas, o procedimento manual acho que seria recortar todos os nomes de imagens do mesmo produto, colar (transpor) e remover as entradas sem nomes.Mas como o arquivo possui mais de 100.000 entradas, alguém sabe como fazer isso usando VBA?
EXEMPLO:O que eu tenho...
product_id; picture_name
1; picture1.jpg
1; picture2.jpg
1; picture3.jpg
2; picture4.jpg
3; picture5.jpg
3; picture6.jpg
O que eu preciso...
product_id; 1st_picture; 2nd_picture; 3rd_picture...
1; picture1.jpg; picture2.jpg; picture3.jpg
2; picture4.jpg
3; picture5.jpg; picture6.jpg
Muito obrigado antecipadamente por sua ajuda.
Solução
Acho que isso resolve seu problema
- Compare duas linhas consecutivas, uma por uma
- Se duas linhas corresponderem, pegue o valor correspondente na 2ª coluna da 2ª linha, coloque o valor próximo à 2ª coluna da 1ª linha e exclua a 2ª linha
- Se não corresponder, pule a etapa anterior e vá para a comparação das próximas duas linhas.
Aqui está o 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow