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

Trier une plage lors de l'ouverture d'un classeur.

  • Initiateur de la discussion Initiateur de la discussion Hades60250
  • 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 !

H

Hades60250

Guest
Bonjour à toutes et tous!

J'ai créé une base de données excel regroupant de nombreuse feuille.

Lors de l'ouverture de ce fichier, en plus des actions Full Screen et l'affichage d'une boite de dialogue, je souhaiterais trier une plage de données dans la feuille "Liste".

J'avais donc le code suivant dans ThisWorkbook:

Private Sub Workbook_Activate()
Application.DisplayFullScreen = True
End Sub

Private Sub Workbook_Deactivate()
Application.DisplayFullScreen = False
End Sub

Private Sub Workbook_Open()

UserForm16.Show
Application.Wait Now + TimeValue("00:00:03")
Unload UserForm16

End Sub

Private Sub Workbook_Activate()

Sheets("Liste").Range("A2:R1000").Select
Selection.Sort key1:=Range("A1"), Order1:=xlAscending

End Sub


Naturellement, ça ne fonctionne pas....😕

Est ce que quelqu'un pourrait m'aider s'il vous plait????
 
Re : Trier une plage lors de l'ouverture d'un classeur.

En fait tu dois regrouper dans la même macro, tout ce que tu souhaites à l'ouverture, ça peut donner ceci :

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
Sheets("Liste").Range("A2:R1000").Select
Selection.Sort key1:=Range("A1"), Order1:=xlAscending
UserForm16.Show
Application.Wait Now + TimeValue("00:00:03")
Unload UserForm16
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
End Sub
 
Re : Trier une plage lors de l'ouverture d'un classeur.

Bonjour Hades60250, pat01200,



Essaye avec ces macros toujours dans le module ThisWorkbook :

Attention à éviter les Select 🙂

Private Sub Workbook_Open()
Application.DisplayFullScreen = True
Sheets("Liste").Range("A2:R1000").Sort key1:=Sheets("Liste").Range("A2"), Order1:=xlAscending
UserForm16.Show
Application.Wait Now + TimeValue("00:00:03")
Unload UserForm16
End Sub
Private Sub Workbook_Deactivate()
Application.DisplayFullScreen = False
End Sub

Code réalisé sans test 😀
 
Dernière édition:
Re : Trier une plage lors de l'ouverture d'un classeur.

Re!

En intégrant le code de CBenardT j'ai un message d'erreur sur la ligne de tri:

Erreur d'execution 1004: Référence de tri non valide.... un petite idée?
 
Re : Trier une plage lors de l'ouverture d'un classeur.

Bonjour Hades60250, CBernardT, pat01200,
Sheets("Liste").Range("A2:R1000").Select
Selection.Sort key1:=Range("A1"), Order1:=xlAscending
Naturellement, ça ne fonctionne pas....😕
Je propose :
Code:
[COLOR=blue]Private Sub[/COLOR] Workbook_Open()
UserForm1.Show
Application.Wait Now + TimeValue("00:00:03")
Unload UserForm1
[COLOR=blue]End Sub[/COLOR]

Code:
[COLOR=blue]Private Sub[/COLOR] Workbook_Activate()
Application.DisplayFullScreen = [COLOR=blue]True[/COLOR]
Sheets("Liste").Range("A1:D1000").Sort key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess
[COLOR=blue]End Sub[/COLOR]

Code:
[COLOR=blue]Private Sub[/COLOR] Workbook_Deactivate()
Application.DisplayFullScreen = [COLOR=blue]False[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 
Re : Trier une plage lors de l'ouverture d'un classeur.

Bonjour Efgé!

En effet il y avait une grossière erreur de saisie de ma part concernant la plage😀.
J'ai intégré le code mais j'ai toujours le même problème et le même message d'erreur concernant le Tri... en revanche la msgbox s'affiche bien.
 
Re : Trier une plage lors de l'ouverture d'un classeur.

Re
Comme l'avait dit CBernardT,il faut utiliser:
Code:
[COLOR=BLUE]Private Sub[/COLOR] Workbook_Activate()
Application.DisplayFullScreen = [COLOR=BLUE]True[/COLOR]
Sheets("Liste").Range("A1:D1000").Sort key1:=Sheets("Liste").Range("A1"), Order1:=xlAscending, Header:=xlGuess
[COLOR=BLUE]End Sub[/COLOR]
Cordialement
 
Re : Trier une plage lors de l'ouverture d'un classeur.

Re,

Un essai si j'ai tout bien compris....

A noter que le formulaire est ShowModal = False

Lorsqu'un objet UserForm est modal, l'utilisateur doit fournir des informations ou fermer l'objet UserForm pour pouvoir utiliser toute autre partie de l'application.
Lorsqu'un objet UserForm n'est pas modal, l'utilisateur peut afficher d'autres feuilles ou fenêtres sans fermer cet objet.
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

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