J'ai une macro qui remplit une feuille de calcul en fonction des données brutes d'une autre feuille de calcul.Suppression des doublons en conservant la dernière ligne entre deux colonnes
La méthode de tri principale pour chaque ligne est par voie (origine à destination). Les résultats pour chaque voie sont en outre triés par semaine. Je dois supprimer les semaines en double pour chaque voie tout en gardant le dernier résultat.
La configuration est similaire à ceci: (Désolé pour le formatage)
A B
LANE A WEEK 38
LANE A WEEK 39
LANE A WEEK 40
LANE A WEEK 41
LANE A WEEK 42
LANE A WEEK 39
LANE A WEEK 40
LANE A WEEK 41
LANE A WEEK 42
LANE A WEEK 39
LANE B WEEK 38
LANE B WEEK 39
LANE B WEEK 40
Je trouve le code suivant qui fonctionne bien pour une seule voie
Dim Rng As Range, Dn As Range, n As Long
Dim Lst As Long, nRng As Range
Lst = Range("B" & Rows.Count).End(xlUp).Row
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For n = Lst To 1 Step -1
If Not .Exists(Range("B" & n).Value) Then
.Add Range("B" & n).Value, Nothing
Else
If nRng Is Nothing Then
Set nRng = Range("B" & n)
Else
Set nRng = Union(nRng, Range("B" & n))
End If
End If
Next n
If Not nRng Is Nothing Then nRng.EntireRow.Delete
End With
Mais comme il ne supprime que les doublons basés sur la semaine ou la colonne B, la totalité de la voie B est supprimée.
EDIT:
Le résultat final devrait apparaître comme celui-ci
A B
LANE A WEEK 38
LANE A WEEK 39
LANE A WEEK 40
LANE A WEEK 41
LANE A WEEK 42
LANE B WEEK 38
LANE B WEEK 39
LANE B WEEK 40
Voici une capture d'écran d'un exemple ensemble de données
à la ligne 5, il y a des données répétées pour la ATL6 voie. Ensuite vient CMH1. J'ai besoin de dupliquer les semaines dans la même voie pour être supprimé, en préservant la dernière mise à jour de la voie. Comme mon code est actuellement, il ne regarde que la semaine. Toutes les données ATL6 sont donc supprimées et seul le CMH1 est laissé.
Pour la voie ATL6, j'ai besoin que les lignes 6 à 9 soient préservées et 2 à 5 supprimées en tant que doublons. Cela devra s'appliquer dans toutes les situations, pas seulement à ces lignes spécifiquement.
Pour être clair. Quel est le résultat final? (Veuillez mettre à jour la question originale). Par exemple, à la date de votre échantillon, la piste A aura deux rangées: semaine 38 et semaine 39 ou seulement semaine 39? –
Mise à jour, pour réitérer la mise à jour.Chaque mise à jour de la feuille de calcul (qui sera quotidienne) ajoutera 4 entrées pour chaque piste. Ceux-ci suivent des semaines de l'année, en spreads de 4 semaines. Donc la feuille actuelle a des semaines 39-42 pour chaque voie (environ 15 ou plus). Donc, le résultat attendu aurait 4 semaines pour le couloir a, 4 semaines pour le couloir b et ainsi de suite. Ceci sera mis à jour quotidiennement pour une période indéfinie, donc le nombre de semaines augmentera au fil du temps – Stuka
Pourquoi ne pas simplement utiliser la fonction Trier sous l'onglet "Données" et ensuite supprimer les doublons par la colonne B? Enregistrement en faisant cela avec une macro – Maldred