Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
793
Réponses
2
Affichages
121
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…