Commande macro Tri par ordre alphabétique

SOFJ -  
SOFJ Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit soucis avec mon tableur (A1:M37) au niveau de la deuxième feuille.

J'ai insérer dans celle ci une première commande macro me permettant d''ajouter une ligne en-dessous automatiquement (par un double clic dans la cellule A35 (càd la dernière).


Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
If Not Application.Intersect(Target, Range("top")) Is Nothing Then 
''Macros par Jarmouni Sofiane le 22 Jan 13 
Dim Lg% 
Lg = Range("Top").Row 

Application.EnableEvents = False 
Rows(Lg).Copy 
Rows(Lg).Insert 
Range("top").ClearContents 
Application.CutCopyMode = False 
Application.EnableEvents = True 
End If 
End Sub 



J'ai par la suite dans la plage ou je dois inscrire mes données (à savoir A5:M35), insérer une seconde commande macro me permettant par un Ctrl+w de trier par ordre croissant les lignes (ordre chronologique). Ça marche du feu de dieu, mais cela s'arrête bien à la ligne 35, et comme avec la première macro j'ai ajouté d'autres lignes et bien les nouvelles lignes restantes ne sont pas triées.
Voila le code actuel de la seconde Macro :


Sub Tri() 
' 
''Macros par Jarmouni Sofiane le 24 Jan 13 

' Tri Macro 
' Tri automatique des lignes 
' 
' Touche de raccourci du clavier: Ctrl+w 
' 
    Range("A5:M35").Select 
    ActiveWindow.SmallScroll Down:=-14 
    ActiveWorkbook.Worksheets("Mouvement des flux").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Mouvement des flux").Sort.SortFields.Add Key:= _ 
        Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
        xlSortNormal 
    With ActiveWorkbook.Worksheets("Mouvement des flux").Sort 
        .SetRange Range("A5:M35") 
        .Header = xlNo 
        .MatchCase = False 
        .Orientation = xlTopToBottom 



Voilà donc mon problème, Y aurait-il quelqu'un capable de me fournir une nouvelle commande, ou bien un moyen de faire fonctionner les deux ?
Je reste à votre disposition pour de plus amples informations si besoin est.

Cordialement.

Sofiane Jarmouni

5 réponses

marc07 Messages postés 593 Date d'inscription   Statut Membre Dernière intervention   187
 
Bonjour,
il te suffit simplement de de rajouter a la macro (Range("A5:M65536").Select

comme ceci

Sub Tri()
'
''Macros par Jarmouni Sofiane le 24 Jan 13

' Tri Macro
' Tri automatique des lignes
'
' Touche de raccourci du clavier: Ctrl+w
'
Range("A5:M65536").Select
ActiveWindow.SmallScroll Down:=-14
ActiveWorkbook.Worksheets("Mouvement des flux").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Mouvement des flux").Sort.SortFields.Add Key:= _
Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Mouvement des flux").Sort
.SetRange Range("A5:M65536")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
1
SOFJ Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, ça marche du tonnerre !
Il a simplement fallu que je reconfigure la touche de raccourci pour exécuter la macro, mais en dehors de ça nickel.

Thumbs up comme on dit ;)

Merci encore.
0
marc07 Messages postés 593 Date d'inscription   Statut Membre Dernière intervention   187
 
tu peut aussi faire en sorte que ton trie se fasse automatiquement a un rajout que tu fait sur ton classeur regarde ici cela est super bien expliquer

http://www.polykromy.com/blog/excel-video-f10.html

au plaisir de t'avoir aider

marc
0
SOFJ Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Ça ne marche plus!
J'ai eu la "bonne idée" d'aller modifier le titre de ma feuille, j'ai pris la précaution d'aller le modifier aussi dans le champ de la commande macro dans le VBA aussi, et il ne veut toujours pas marcher.

Voila ce qui est affiché :


Sub Tri()
'
''Macros par Jarmouni Sofiane le 24 Jan 13

' Tri Macro
' Tri automatique des lignes
'
' Touche de raccourci du clavier: Ctrl+w
'
Range("A5:M65536").Select <= Voilà l'erreur
ActiveWindow.SmallScroll Down:=-14
ActiveWorkbook.Worksheets("Trésorerie").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Trésorerie").Sort.SortFields.Add Key:= _
Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Trésorerie").Sort
.SetRange Range("A5:M65536")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub



Ps : Merci pour le lien ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
marc07 Messages postés 593 Date d'inscription   Statut Membre Dernière intervention   187
 
si tu n'a pas fait d'erreur dans le nom de "Trésorerie" alors essaye de fermer ton classeur et de l'enregistrer puis ouvre a nouveau peut etre que l'évenement dois s'enregistrer a nouveau afin qu'il fonctionne
0
SOFJ Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Je confirme, ça remarche merci pour tout !
0