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 ?

8 réponses

  1. 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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. Fmoore Messages postés 12 Statut Membre
     
    Éric le problème est que la feuille ne sera jamais activé.
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bon, si tu ne veux pas tout lire...
      Abandon du suivi
      0
    2. Fmoore Messages postés 12 Statut Membre
       
      J'ai bien lu ce que tu dis mais cette worksheet ne sera jamais activé!
      0
  4. Morgothal Messages postés 1350 Statut Membre 184
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. Morgothal Messages postés 1350 Statut Membre 184
     
    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
  8. Fmoore Messages postés 12 Statut Membre
     
    Parfait merci beaucoup
    0
  9. 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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ce que j'ai écris au-dessus ne t'interesse pas du tout ?
      eric
      0