Commande vba excel

Résolu
Francis -  
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 ?
A voir également:

8 réponses

Francis
 
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"
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
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 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target = [A1] Then
        'ton code
    End If
End Sub
ton tri se fera si tu sélectionnes A1.

eric
0
Fmoore Messages postés 12 Statut Membre
 
Éric le problème est que la feuille ne sera jamais activé.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bon, si tu ne veux pas tout lire...
Abandon du suivi
0
Fmoore Messages postés 12 Statut Membre
 
J'ai bien lu ce que tu dis mais cette worksheet ne sera jamais activé!
0
Morgothal Messages postés 1350 Statut Membre 183
 
Salut,
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 = False
Peut-etre est-ce ce que tu cherches ?
(Pour que ça fonctionne il faut bien sûr mettre le rafraîchissement avant l'activate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fmoore Messages postés 12 Statut Membre
 
Probablement excellent le seul problème je commence dans le domaine alors pourrais tu m'expliquer comment je doit l'inscrire svp.
0
Morgothal Messages postés 1350 Statut Membre 183
 
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 
0
Fmoore Messages postés 12 Statut Membre
 
Parfait merci beaucoup
0
Fmoore Messages postés 12 Statut Membre
 
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
-1
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Ce que j'ai écris au-dessus ne t'interesse pas du tout ?
eric
0