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

Code VBA pour revenir sur l'onglet précédent

  • Initiateur de la discussion Initiateur de la discussion loulourav
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

loulourav

XLDnaute Occasionnel
Bonjour à tous,

j'ai une macro sur mon classeur qui est présente sur tous mes onglets (13 onglets) sauf sur le dernier.
Cette macro tri des noms (qui se trouve dans le dernier onglet) dans l'ordre, chaque mois il doit être possible d’exécuter la macro pour que le tri s'effectue.
la macro fait bien ce qu'on lui demande mais je ne trouve pas quoi rajouter à " End With "pour que automatiquement après l’exécution de la macro je revienne vers l'onglet visité, car la je reste sur le dernier onglet ...

voici le code en question :

Code:
Sub TRIER_PH()
'
' TRIER_PH Macro
'

'
    Sheets("NOM").Select
    ActiveWorkbook.Worksheets("NOM").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("NOM").Sort.SortFields.Add Key:=Range("A2:A3900"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("NOM").Sort
        .SetRange Range("A1:A3900")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 =====>que mettre ici ????<======
End Sub


merci d'avance pour votre aide !🙂
 
Re : Code VBA pour revenir sur l'onglet précédent

Bonjour loulourav, le forum,

Puisque le nom de la feuille "NOM" est spécifié clairement dans ton code, pourquoi sélectionner cette feuille au début du code ?

Ici, tu peux supprimer Sheets("NOM").Select qui n'est pas utile, et comme ça ton tableau est trié sans changer de feuille 🙂

Autre possibilité, si vraiment tu souhaites voir ce qui se passe pendant le tri, c'est de mémoriser le nom de ta feuille avant la macro, puis revenir sur cette feuille.

Code:
Sub TRIER_PH()
'
' TRIER_PH Macro
'

'
    FeuilleActive = ActiveSheet.Name
    Sheets("NOM").Select
    ActiveWorkbook.Worksheets("NOM").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("NOM").Sort.SortFields.Add Key:=Range("A2:A3900"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("NOM").Sort
        .SetRange Range("A1:A3900")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets(FeuilleActive).Select '=====>que mettre ici ????<======
End Sub
 
Re : Code VBA pour revenir sur l'onglet précédent

Bonsoir à tous, loulourav, NezQuiCoule

loulourav
Est-ce que cette version light de ta macro produit le même tri ?
Code:
Sub TRIER_PH()
With Worksheets("NOM")
.Columns(1).Sort key1:=.Range("A2"), order1:=xlAscending, Header:=xlYes
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
291
Réponses
17
Affichages
1 K
Réponses
11
Affichages
785
Réponses
6
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…