Différentes entrées pour chaque image du produit
Question
J'ai une liste de produits avec l'ID et le nom de l'image.Une entrée par image, au lieu d'une entrée par produit et des images dans les colonnes que j'en ai besoin.Si le fichier n'avait que quelques entrées, la procédure manuelle, je suppose qu'il serait de couper tous les noms d'image du même produit, de la pâte (transposez) et de supprimer les entrées sans noms.Mais puisque le fichier compte plus de 100 000 entrées, quelqu'un sait-il comment procéder à cela en utilisant VBA?
exemple: Ce que j'ai ...
product_id; picture_name
1; picture1.jpg
1; picture2.jpg
1; picture3.jpg
2; picture4.jpg
3; picture5.jpg
3; picture6.jpg
Qu'est-ce dont j'ai besoin ...
product_id; 1st_picture; 2nd_picture; 3rd_picture...
1; picture1.jpg; picture2.jpg; picture3.jpg
2; picture4.jpg
3; picture5.jpg; picture6.jpg
Merci beaucoup à l'avance pour votre aide.
La solution
Je suppose que cela résout votre problème
- comparer deux lignes consécutives un par un
- Si deux lignes correspondent, prenez la valeur correspondante dans la 2e colonne de 2e rangée Mettez la valeur à côté de la deuxième colonne de la 1ère rangée et supprimez la 2e rangée
- Si ce n'est pas des correspondances, ignorez l'étape précédente et allez comparativement à la comparaison des deux lignes suivantes.
voici le code
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow