Tri automatique (non chiffré)

Bonjour à vous,

J'ai encore besoin de votre aide.

voici mon problème :

J'ai une liste colonne A, admettons avec l'intégralité des fruits et légumes , Pomme, Poire, Cerise, Aubergine...

J'aimerais qu'en colonne B, la partie de liste (liste restreinte comportant certaines références qui figurent obligatoirement dans la colonne A) : Poire, Cerise, Pomme s'aligne sur les valeurs de la colonne A.

Par exemple, si en A14 j'ai la valeur pomme et que j'ai en b16 également la valeur Pomme, j'aimerais que grâce à un tri automatique qui s'effectuerait grâce à un bouton de commande (par exemple), que la valeur Pomme de la colonne B se positionne en face de la valeur pomme de la colonne A donc ici en B14.

Cependant sans que cela n'écrase la valeur précédente (la valeur qui se situait en B14 auparavant doit pouvoir s'aligner avec la valeur correspondante : si en B14 avant j'avais raisin, que cette valeur s'aligne avec la valeur raison de la colonne A).

Merci d'avance pour toute aide

Cordialement

Bonjour,

Avec tes listes qui commencent en ligne 2 :

  • en C2: =SI(NB.SI(B:B;A2);A2;"")
  • tirer la formule jusqu'en bas
  • copier la colonne C, collage spécial valeur
  • supprimer la colonne B

eric

Bonjour eric,

Merci pour ta réponse.

J'ai bien testé ce que tu proposais mais même si cette formule marche,

il me faudrait l'équivalent de ce que tu m'as proposé en VBA afin de l'intégrer dans une macro.

Ainsi mon code commencerait ainsi :

Private Sub CommandButton21_Click()

Columns("C").Select

Selection.Insert

( A compléter)

End Sub

Donc dans le language VBA : créer une colonne en C, trier la colonne B en fonction de la colonne A dans cette colonne C et supprimer la colonne B une fois tout cela effectué.

Merci encore pour l'aide.

Cordialement

Ok

Sub dispatcher()
    Dim derlig As Long, lig As Long, result
    derlig = Cells(Rows.Count, 1).End(xlUp).Row
    result = [A1].Resize(derlig).Value
    For lig = 1 To UBound(result)
        If Application.CountIf([B:B], result(lig, 1)) = 0 Then result(lig, 1) = ""
    Next lig
    [B:B].ClearContents
    [B1].Resize(derlig) = result
End Sub

eric

Rechercher des sujets similaires à "tri automatique chiffre"