Tri par ordre croissant

SALAH

XLDnaute Occasionnel
Bonjour à tous

J' ai un petit soucis,j' ai un tableau avec des colonnes et j'aimerais s' il est possible avec un code vb
de trier et d' organiser un tableau.
J' ai essayé de trouver une solution mais je bloque
Ci-joint un exemple pour mieux comprendre

Merci par avance
 

Pièces jointes

  • Maquette.xls
    48 KB · Affichages: 35

SALAH

XLDnaute Occasionnel
Re, Staple1600, Lone-wolf

Le but c' est de voir dans la colonne réf2 un ordre chronoloqique accompagnés de leurs propres références
Comme dans l exemple Ci dessous

ref1 ref2 désignation couleur
P 254 Chemises blanche
R 365 Veste rose
R 365 Veste vert
V 1478 Pull noir

Merci
 

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
C'est noté ;)
Dans ce cas:
VB:
Sub Tri_TEST_OK_C()
Dim l&, t
l = Cells(Rows.Count, "B").End(3).Row: t = Array(Array(0, 1), Array(1, 1))
Application.DisplayAlerts = False
If Len([A9]) = 0 Then
Range("B9:B" & l).TextToColumns Destination:=Range("A9"), DataType:=2, FieldInfo:=t
Range("A8:D" & l).Sort Key1:=Range("B8:B" & l), Order1:=1, Header:=True
Else
MsgBox "Tableau déjà trié"
End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

@SALAH
Pour les doublons, il suffit d'utiliser la MFC idoine ;)
(déjà paramétrée en natif dans Excel à partir de 2010 de mémoire)

EDITION: Donc la MFC native mais pilotée par VBA
VB:
Sub Doublons()
Dim l&, Plg As Range
l = Cells(Rows.Count, "B").End(3).Row
Set Plg = Range("B9:B" & l)
    Plg.FormatConditions.AddUniqueValues
    Plg.FormatConditions(Plg.FormatConditions.Count).SetFirstPriority
    With Plg.FormatConditions(1)
      .DupeUnique = xlDuplicate: .Font.Color = RGB(216, 0, 187)
      .Font.Bold = True: .Interior.Color = 13551615
      .StopIfTrue = False
    End With
End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Oubien une macro de Jacques Boisgontier. En G2 met la couleur de fond, ensuite

VB:
Sub ColorDoublons()
Dim mondico As Object, tablo As Range, c As Range

  Set mondico = CreateObject("Scripting.Dictionary")
  Set tablo = Range("b9", Range("b" & Rows.Count).End(xlUp))
  tablo.Interior.ColorIndex = xlNone

  For Each c In tablo
    If c <> "" Then mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  For Each c In tablo
    If mondico.Item(c.Value) > 1 Then c.Interior.Color = Range("g2").Interior.Color
  Next c
End Sub

Et en dessus de Else (Tri_TEST_OK_C()) Call ColorDoublons
 

SALAH

XLDnaute Occasionnel
Bonjour le forum, Lone-wolf
Tout fonctionne à merveille mais le hic ce que j' aurai du faire au début de ma demande
l' idée s' est élargie, pour une meilleure compréhension je joins le fichier
 

Pièces jointes

  • Maquette-1.xlsm
    20.7 KB · Affichages: 21

Discussions similaires

Réponses
0
Affichages
194
Réponses
55
Affichages
2 K
Réponses
4
Affichages
328

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG