Tri par ordre alphabétique automatique - Problème de macro

Bonjour à tous

Je dois créer un fichier Excel qui trie les cellules à chaque saisie par ordre alphabétique. J'ai bien trouvé la formule sur internet, cependant un message d'erreur s'affiche en disant que "la méthode sort de la classe range a échoué" Qu'est ce que cela veut dire ? Je suis nul à Excel

Je vous met en pièce jointe une impression écran de la formule qui ne marche pas

Merci d'avance à tous ceux qui prendront le temps de lire et de m'aider

excel

Bonjour,

avec une image on ira pas loin...

Ah oui désolé, je vous envoi ça

Donc je voudrais qu'à chaque saisie du signataire celui-ci se replace par ordre alphabétique


Par contre je ne sais pas si vous allez réussir à l'ouvrir, à cause de la macro, le fichier rame complètement..

143tri-alphabetique.xlsm (20.77 Ko)

Bonjour,

Tu recomposes ton évènementielle :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastRow As Long
    If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
        Application.EnableEvents = False
        LastRow = Me.Range("A" & Rows.Count).End(xlUp).Row
        Me.Range("A2:G" & LastRow).Sort key1:=Me.Range("A2"), order1:=xlAscending, _
         Header:=xlNo
        Application.EnableEvents = True
    End If
End Sub

Et tu supprimes la macro Tri (le tri est incorporé ci-dessus).

Cordialement.

Je vous remercie mille fois

Juste une dernière chose.. peut-on appliquer cette macro à un tableau ? Parce que quand je l'applique au tableau, l'entête se met dans l'ordre alphabétique à chaque nouvelle saisie pourtant la macro ne prend pas en compte la première ligne ..

Qu'entends-tu par "l'appliquer à un tableau" ?

Un tri s'applique à une plage formant un tableau, comme dans ton modèle !

En faite il s'agit d'un tableau avec des entêtes pour pouvoir faire un tableau croisé dynamique

Je met le tableau en question en pièce jointe

Si tu mets un modèle qui n'est pas conforme à ton fichier réel !!!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [Tableau1].Resize(, 1)) Is Nothing Then
        Application.EnableEvents = False
        With [Tableau1]
            .Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
        End With
        Application.EnableEvents = True
    End If
End Sub

Je suis pas très fort C'est parfait merci beaucoup

Un tableau Excel est un objet spécifique, ce n'est plus un tableau formé avec une plage de cellules ordinaires...

Rechercher des sujets similaires à "tri ordre alphabetique automatique probleme macro"