code vba pour faire un tri et supprimer doublons

moutchec

XLDnaute Occasionnel
bonjour le forum,
bonjour à tous,
je cherche un code VBA (à activer à partir d'un bouton) pour dresser une liste exhaustive d'articles.
1/il s'agit de copier la feuille SORTIES qui part des colonnes A à Q sur la feuille DONNEES.
2/une fois la copie faite, supprimer les colonnes de A à G + J et K.
3/faire un tri du plus petit au plus grand à partir de la colonne H
4/supprimer les lignes complètes des doublons des articles qui sont en colonne H
si possible en gardant la mise en forme source.
NB : la feuille SORTIES ne doit pas être modifiée.
merci d'avance pour votre aide experte.
cordialement.
Moutchec.
 

Pièces jointes

  • Classeur1.xlsx
    136 KB · Affichages: 17

Paf

XLDnaute Barbatruc
Bonjour,

un essai :
Code:
ListeA()
Dim T, TT(1 To 7), i As Long, j As Byte
Dim WS As Worksheet, WD As Worksheet, Dico
Set WS = Worksheets("SORTIES")
Set WD = Worksheets("DONNEES")
Set Dico = CreateObject("Scripting.Dictionary")

T = WS.Range("H1:Q" & WS.Range("H" & Rows.Count).End(xlUp).Row)
For i = LBound(T, 1) To UBound(T, 1)
  If Not Dico.Exists(T(i, 1)) Then
  TT(1) = T(i, 2)
  For j = 2 To 7
  TT(j) = T(i, j + 3)
  Next
  Dico(T(i, 1)) = TT
  End If
Next
WD.Range("A1").Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
WD.Range("B1").Resize(Dico.Count, 7) = Application.Transpose(Application.Transpose(Dico.items))
WD.UsedRange.Sort Key1:=WD.Range("A2"), Order1:=xlAscending, Header:=xlGuess
End Sub

A+
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
689
Réponses
2
Affichages
98

Statistiques des forums

Discussions
311 713
Messages
2 081 808
Membres
101 819
dernier inscrit
lukumubarth