Commande macro Tri par ordre alphabétique

SOFJ -  
SOFJ Messages postés 3 Statut Membre -
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

  1. marc07 Messages postés 630 Statut Membre 194
     
    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
  2. SOFJ Messages postés 3 Statut Membre
     
    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
  3. SOFJ Messages postés 3 Statut Membre
     
    Ç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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. marc07 Messages postés 630 Statut Membre 194
     
    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
    1. SOFJ Messages postés 3 Statut Membre
       
      Je confirme, ça remarche merci pour tout !
      0