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.

Était-ce utile?

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
scroll top