Je suis un peu difficile avec VBA pour Excel. J'ai une table avec des produits, où les produits peuvent avoir plusieurs catégories. Les catégories associées à un produit peuvent comporter des sous-catégories, situées dans les colonnes adjacentes. Si un produit comporte plusieurs catégories, ces catégories sont situées une seule ligne sous le produit. Voir pic1.Déplacer les cellules en fonction de la valeur
Ce que je veux atteindre: Chaque fois que j'exécute le script, les catégories actuelles qui sont sur la ligne de l'information produit doivent être remplacées par les catégories ci-dessous, jusqu'à ce que vous atteigniez le prochain produit. S'il n'y a pas de nouvelle catégorie à remplacer, la ligne de produit peut être supprimée. (Dans cet exemple, j'ai besoin d'exécuter le script 3 fois). Donc, je finira par se retrouver avec ceci:
Exécuter le script première fois:
Le code I » Je suis si loin est:
Sub MoveEmpty()
Dim i as Long, j as Long
Application.ScreenUpdating = False
j = Range("A" & Rows.Count).End(xlUp).Row
For i = j to 3 Step -1
If Range("A" & i) <> "" Then
Range("C" & i -1) = Range("C" & i).Resize(,3)
Range("A" & i).EntireRow.Delete
End If
Next i
End Sub
Hope this sens, et merci pour aider,
Bart
sous catégorie n'a pas d'importance? – Ibo
C'est le cas. Ainsi, dans le premier exemple, la ligne C3: C5 doit remplacer B3: B5, E3: E5 doit remplacer D3: D5 etc. Lorsqu'il n'y a pas de ligne en dessous du produit contenant les catégories, la ligne de produit peut être supprimée. – CMBart
donc si les sous-catégories sont différentes, elles ne doivent pas se chevaucher? Je crois comprendre que vous voulez faire une liste unique basée sur le produit, la catégorie et la sous-catégorie, n'est-ce pas? cellules vides dans une colonne représentent la première valeur au-dessus d'eux dans la même colonne? – Ibo