Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

CHALET53

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

Bonjour,

je ne sais pas ce que tu veux faire exactement
Si tu rajoutes après Activesheet.Protect
Sheets("class").select

tu seras sur cette feuille à la fin

a+
 

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
 

marcelio

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

Bonjour Vgendron et le Forum,

Je te remercie beaucoup de ton aide,
cela fonctionne très bien.
Encore merci et bonne fin d'après midi à toi et au Forum.

A+
 

Discussions similaires

Réponses
3
Affichages
591
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…