Macro pour trier des données

Bonsoir

J'ai crée un formulaire pour ajouté une ligne dans mon tableau et je cherche une macro pour trier mes données.

Ci joint le fichier

Merci pour cette nouvelle aide

Berlingo

Bonjour,

tu as oublié de placer End if dans Private Sub CommandButton2_Click()

crdlt,

André

Bonsoir,

Il me semble que c'est au moins la 3e fois que je te vois poser ce sujet !

Pour remettre l'ajout à sa place, il faut trier. Si tu tries sur la colonne 2, S se retrouvera en fin de liste. Pour conserver l'ordre : S, 1G... 4G, il te faut définir une liste personnalisée pour trier selon la liste. Il faut aussi définir les autres critères de tri (colonne 1 ?, autres ?)

Il me semble aussi que tu voulais une renumérotation, que je ne vois plus ici ?

Je pensais ce sujet résolu depuis plusieurs jours...

Re,

un exemple ici qui a été posté dans le forum est qui ressemble à ce que tu recherches

crdlt,

André

Bonsoir

En effet, je souhaite garder l 'ordre S,1G,2G,3G et 4G..... et dans ces rubriques un tri pas numéro me semble( colonne de gauche) le plus simple

Une rénumerotation ( bon terme !), c'est aussi cela que je souhaiterais mettre en place lors de l'ajout d'une nouvelle donnée.

Enfin, non ce n'est toujours pas résolu mais j'essaie petit à petit d'avancer......pas toujours facile

Cdt

Bonjour,

Un exemple à étudier.

Fais attention avec les données mises sous forme de tableau. On ne fait pas n'importe quoi !...

Pour la numérotation, voir code commentée.

Cdlt.

Private Sub cmdInsertData_Click()
Dim cl As Variant
Dim Num As Long, n As Long
    If MsgBox("confirmez vous l'ajout des donnŽes?", vbYesNo, "confirmation") = vbYes Then
        Set lo = Worksheets("Tableau").ListObjects(1)
        cl = Array("S", "1G", "2G", "3G", "4G")
        n = Application.GetCustomListNum(cl)
        If n = 0 Then Application.AddCustomList (cl)
        'Numéro d'enregistrement par SER
        Num = WorksheetFunction.CountIf(lo.ListColumns(2).DataBodyRange, TextBox2.Value) + 1
        'ou numéro d'enregistrement dans le tableau
        'Num = lo.ListRows.Count + 1
        Set LR = lo.ListRows.Add
        With LR.Range
            .Cells(1, 1) = Num
            .Cells(1, 2) = TextBox2.Value
            .Cells(1, 3) = TextBox3.Value
            .Cells(1, 4) = TextBox4.Value
            .Cells(1, 5) = TextBox5.Value
        End With
    End If
    With lo.Sort
        .SortFields.Add Key:=lo.ListColumns(2).DataBodyRange, _
                        SortOn:=xlSortOnValues, _
                        Order:=xlAscending, _
                        CustomOrder:=Application.CustomListCount
        .SortFields.Add Key:=lo.ListColumns(1).DataBodyRange, _
                        SortOn:=xlSortOnValues, _
                        Order:=xlAscending
        .Apply
        .SortFields.Clear
    End With
    n = Application.GetCustomListNum(cl)
    Application.DeleteCustomList n
End Sub

Bonjour

Et surtout merci beaucoup.

Difficile à tout comprendre, encore trop novice .

J'ai intégrer la macro. Les nouvelles lignes se mettent bien dans la bonne catégorie (1G,2G,3G) mais pas à la bonne place ( si je rentre sur le formulaire par exemple n° 10 , la nouvelle donnée s'intègre après la dernière ligne du groupe , et prend le numéro juste après la dernier ligne mais pas la dixième place avec le numéro 10 et remplaçant l'ancien 10 n'en le poussant d'une ligne vers le bas.

Quelles erreurs ai je commis avec mes données sous forme de tableau ?

Ca me fera avancer

Encore merci

Cdt

Bonjour,

La procédure traite de l'ajout d'une nouvelle ligne. La numérotation est automatique (tu as 2 choix, comme écrit !?).

Le tri est effectué par SER (liste personnalisée ; colonne 2) et Num. (colonne 1).

Regarde aussi les modifications apportées au niveau des en-têtes de colonnes du tableau...

Cdlt.

Bonjour à tous !

Voilà qui est bien engagé... !

Bonjour

En effet bien engagé, je suis content et je croise les doigts pour pouvoir encore avancer

Rechercher des sujets similaires à "macro trier donnees"