![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir le forum, wwwwwwwooooooouuuuuuaaaaaaaahhhhhhhhhh !!!
Véritablement s u p e r ! Je me demande s'il est possible de trier les onglets (feuilles) comme on effectuerait le tri de noms dans un champs, de façon automatique Merci pour vos réponses Jean |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Messages: 166
|
bonsoir
voila un code qui tri les onglets,j'espere que cela t'aidera Code:
Sub TrieOnglet() Dim Cpt1 As Byte, Cpt2 As Byte, Ordre As Byte Application.ScreenUpdating = False Cpt1 = 1 Do Ordre = 0 For Cpt2 = Cpt1 + 1 To Sheets.Count If Sheets(Cpt1).Name > Sheets(Cpt2).Name Then Ordre = Cpt2 Next If Ordre 0 Then Sheets(Cpt1).Move after:=Sheets(Ordre) Else Cpt1 = Cpt1 + 1 Loop While Cpt1 < Sheets.Count Application.ScreenUpdating = True End Sub
__________________
|
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
ben moi je n'ai pas compris la question comme Petchy et je pensais que tu voulais que les feuilles se réorganisent toutes seules, donc je passe par une (ou plutôt par deux) macro événementielle.
D'une part, la macro s'exécute à chaque ajout de feuille, mais aussi à chaque changement de feuille, ce qui permet de prendre en compte les changements de nom de l'une des feuilles. Evidemment, si rien n'a changé dans l'organisation de ces feuilles, le temps d'exécution de la macro est négligeable et ça ne ralentit pas le programme. Pour Petchy : dans ce cas particulier, on n'a pas intérêt à mettre le ScreenUpdating à False parce qu'alors on voit un clignotement, même si aucune feuille n'a bougé. Evidemment, si la macro doit être lancée au coup par coup, c'est moins dérangeant Papy Novice, je laisse de côté les 5 premières feuilles J'oubliais, ce code est à coller dans Thisworkbook Code:
Option Explicit 'Ti - http://veriti.free.fr Private Sub TriFeuilles() Dim Bcle%, Index%, Sh As Object 'évidemment, les feuilles ne doivent pas être protégées ! On Error Resume Next With ThisWorkbook For Each Sh In ThisWorkbook.Sheets If Sh.Index > 5 Then For Index = 6 To .Sheets.Count If LCase(Sh.Name) > LCase(.Sheets(Index).Name) And Sh.Index < Index Then Sh.Move , .Sheets(Index) End If Next Index End If Next Sh End With End Sub Private Sub Workbook_NewSheet(ByVal Sh As Object) TriFeuilles End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) TriFeuilles End Sub |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: Bourges
Version Excel : Excel 2003 (PC)
Messages: 330
|
Bonsoir le Forum, bonsoir Petchy, bonsoir super TI, bonsoir papy,
dis moi papy ne serait ce pas un message subliminal??? je prend avec plaisir ce tri pour le classeur que je te bricole. de là à la mettre en application ??? Bon Excel. A + Macpoy Fait que chaque heures de ta vie soit un souvenir pour demain!!! |
|
|
|
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir le Forum, bonsoir Petchy, bonsoir super TI, et mcpoy,
Dis-donc, tu plaisantes... Je pense à toi qui marne (pas la vallée) dur pour moi et c'est vrai. Comme j'avais besoin pour le boulot, je me suis dis que tu serais intéressé toi aussi. Logique non ???? Très bonne soirée au forum et à toi. Jean * Tel un arbre planté près d'un ruisseau, tout ce qui est petit est appelé à grandir. |
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|