Trier plusieurs lignes sur 1 colonne numéroté

Bonjour à tous,

Voici ma demande, j'ai une colonne A qui est numéroté, en face de chaque numéro j'ai plusieurs lignes 2 ou 3

Je voufrais que les lignes suivent la numérotation de la colonne A ( pour trier de 1 à x)

merci d'avance

10essai.xlsm (10.12 Ko)

Hello,

Comme ça ? Si c'est le cas pas besoin de VBA

image

@+

bonjour,

Une macro avec bouton serait bien, sans multiplier les numéros

Merci

Bonjour,

Sélection de la colonne A , appui sur F5/Cellules Vides/écrire "=" et appuyer sur la flèche vers le haut et ensuite "CTRL Entrée" et puis CTRL C des données de la colonne A pour copier et coller valeur via le clic droit, ce qui enlèvera les formules créées.

P.

Bon voila j'ai trouvé avec IA

sur 3 lignes en face du numéro, et avec un boutons

ci-joint cette fonction!

merci des propositions

6essai.xlsm (20.63 Ko)

Bonjour à tous ,

De temps en temps, c'est vraiment du n'importe quoi l'IA ! Tout code "un peu pensé" aboutit à quelque chose de plus concis et plus rapide.

Voici un code (dans Module1) :

Sub Trier()
Dim der&, t, ref, i&
   Application.ScreenUpdating = False
   With ActiveSheet
      der = .Cells(Rows.Count, "b").End(xlUp).Row     ' N° dernière cellule remplie de la colonne B
      t = .[a1].Resize(der)         ' les valeurs de la colonne A transférées dans un array t
      For i = 2 To UBound(t): t(i, 1) = IIf(t(i, 1) = "", t(i - 1, 1), t(i, 1)): Next     ' si t(i,1) est vide alors il prend la valeur du dessus
      .[a1].Resize(der) = t                                                               ' réécriture de t sue la feuille
      .[a1].Resize(der, 7).Sort Key1:=.[a1], order1:=xlAscending, Header:=xlNo            ' tri des données
      t = .[a1].Resize(der): ref = t(1, 1)   ' relecture des valeurs triées de la colonne A - ref est la première valeur
      For i = 2 To der
         If t(i, 1) = ref Then t(i, 1) = "" Else ref = t(i, 1) ' si t(i,1) est égal à ref, t(i,1)est mis à blanc
      Next i                                                   ' sinon cette valeur devient la nouvelle référence ref
      .[a1].Resize(der) = t                                    ' réécriture de t sur la feuille
   End With
End Sub

Re,

Il y a encore un code plus simple et plus court:

Sub Trier2()
Dim der&
   Application.ScreenUpdating = False
   With ActiveSheet
      der = .Cells(Rows.Count, "b").End(xlUp).Row     ' N° de ligne de la dernière cellule remplie de la colonne B
      .Columns("b:b").Insert: On Error GoTo FIN       ' insertion d'une colonne avant colonne B
      .[b1].Resize(der).FormulaR1C1 = "=IF(RC[-1]<>"""",RC[-1],OFFSET(RC,-1,0))" ' Formule colonne B
      .[b1].Resize(der) = .[b1].Resize(der).Value     ' les formules sont converties en leur valeur
      .[a1].Resize(der, 8).Sort Key1:=.[b1], order1:=xlAscending, Header:=xlNo   ' Tri selon colonne B
FIN:
      .Columns("b:b").Delete     ' supression de la colonne B
   End With
End Sub

oui merci, encore plus simple.

bonne soitée !

Rechercher des sujets similaires à "trier lignes colonne numerote"