Lancer macro tri sur feuille "tri" sans passer par celle-ci.

marcelio

XLDnaute Occasionnel
Bonjour le Forum,

Sur ma feuil1 je lance une macro qui exécute un tri dans ma feuille "tri" et qui se termine dans la feuille "class".

Est il possible d'éviter que la macro passe par la feuille "tri" pour s'exécuter,
et quelle se positionne directement dans ma feuille "class".


Mon code
Sub tri()
Application.ScreenUpdating = False
Sheets("tri").Select
ActiveSheet.Unprotect
Range("FA2:FB20").Select
Selection.Sort Key1:=Range("FB2"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Merci de votre aide
 

Pièces jointes

  • Classeur1.zip
    12.9 KB · Affichages: 21
  • Classeur1.zip
    12.9 KB · Affichages: 25
  • Classeur1.zip
    12.9 KB · Affichages: 21

vgendron

XLDnaute Barbatruc
Re : Lancer macro tri sur feuille "tri" sans passer par celle-ci.

salut

essai avec ca:
Code:
Sub tri()
    Application.ScreenUpdating = False
    With Sheets("tri")
        .Unprotect
        .Range("FA2:FB20").Sort Key1:=.Range("FB2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        .Protect
    End With
    Application.ScreenUpdating = True
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Lancer macro tri sur feuille "tri" sans passer par celle-ci.

bonjour marcelio

Code:
Sub tri()
    Application.ScreenUpdating = False
    Sheets("tri").Unprotect
    Sheets("tri").Range("FA2:FB20").Sort Key1:=Sheets("tri").Range("FB2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Sheets("tri").Protect
    Application.ScreenUpdating = True
End Sub
 

marcelio

XLDnaute Occasionnel
Re : Lancer macro tri sur feuille "tri" sans passer par celle-ci.

Bonsoir le forum,

Vgendron et Pierrejean vos codes fonctionnent parfaitement.
Je vous en remercie.
J'ai une autre demande SVP
Dans la même feuille "tri" j'aimerais supprimer les données présentes des colonnes GA2:GB20
j'ai testé en supprimant le code tri et mis à la place
Range("GA2:GF20").Select
Selection.ClearContents
Mais cela ne fonctionne pas.
A nouveau merci de votre aide
 

vgendron

XLDnaute Barbatruc
Re : Lancer macro tri sur feuille "tri" sans passer par celle-ci.

Bonjour

pas besoin de selectionner pour effacer
cf ligne rajouttée avant le .protect

à noter que dans ton fichier exemple du premier post: il n'y a rien à effacer dans la range.. mais je suppose que depuis, ca a changé
Code:
Sub tri()
    Application.ScreenUpdating = False
    With Sheets("tri")
        .Unprotect
        .Range("FA2:FB20").Sort Key1:=.Range("FB2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        .Range("GA2:GF20").ClearContents
        .Protect
    End With
    Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
3
Affichages
572

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 058
dernier inscrit
florentLP