Commande vba excel
Résolu
Francis
-
Fmoore Messages postés 12 Statut Membre -
Fmoore Messages postés 12 Statut Membre -
Bonjour,
Voici ma commande :
Private Sub Worksheet_Activate()
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
Le seul problème est que ma feuille n'est jamais activée alors je pourrais changer Private Sub Worksheet_Activate() par quoi ?
Voici ma commande :
Private Sub Worksheet_Activate()
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
Le seul problème est que ma feuille n'est jamais activée alors je pourrais changer Private Sub Worksheet_Activate() par quoi ?
A voir également:
- Commande vba excel
- Invite de commande - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Commande terminal mac - Guide
- Déplacer colonne excel - Guide
8 réponses
Quelque chose comme :
Private Sub Workbook_Open()
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
mais il me manque la partie ou j'identifie la feuille "Base de donnée"
Private Sub Workbook_Open()
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
mais il me manque la partie ou j'identifie la feuille "Base de donnée"
Bonjour,
ta feuille sera activée si tu en sélectionnes une autre et que tu la re-sélectionne.
Sinon tu as d'autres évèments utilisables : change, selectionChange et voire même ajouter un bouton.
Tout dépend quand et comment tu désires rafraichir ton tri.
Par exemple avec :
eric
ta feuille sera activée si tu en sélectionnes une autre et que tu la re-sélectionne.
Sinon tu as d'autres évèments utilisables : change, selectionChange et voire même ajouter un bouton.
Tout dépend quand et comment tu désires rafraichir ton tri.
Par exemple avec :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = [A1] Then
'ton code
End If
End Subton tri se fera si tu sélectionnes A1.
eric
Salut,
Pourquoi ne pas insérer un petit
Edit : Je viens de voir une réponse de eljojo_e sur un autre sujet :
Après si tu veux pas voir l'autre feuille, tu peux mettre
(Pour que ça fonctionne il faut bien sûr mettre le rafraîchissement avant l'activate)
Pourquoi ne pas insérer un petit
Worksheets("Base de données").Activate dans la macro s'exécutant à l'ouverture du classeur ?
Edit : Je viens de voir une réponse de eljojo_e sur un autre sujet :
Après si tu veux pas voir l'autre feuille, tu peux mettre
Application.ScreenUpdating = FalsePeut-etre est-ce ce que tu cherches ?
(Pour que ça fonctionne il faut bien sûr mettre le rafraîchissement avant l'activate)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Probablement excellent le seul problème je commence dans le domaine alors pourrais tu m'expliquer comment je doit l'inscrire svp.
Eh bien dans ton code tu rajoutes ces deux lignes, ce qui donne :
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Worksheets("Base de données").Activate
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
End Sub
Private Sub Workbook_Open()
Worksheets("Base de donnée")
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
Dans le fond c'est quelque chose comme ça que je veux mais il doit manquer un petit quelque chose
Worksheets("Base de donnée")
Range("A1:c800").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range _
("c1"), Order2:=xlDescending, Key3:=Range _
("b1"), Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom
Range("A9").Select
End Sub
Dans le fond c'est quelque chose comme ça que je veux mais il doit manquer un petit quelque chose