Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri onglets

6 réponses
Avatar
Quaisako
Bonsoir le Forum,

Ce code doit trier les onglets.
J'en ai 2 nommés "Sommaire" et "Classe", que j'aimerai garder à l'extrème
gauche de la barre d'onglets.

Pour trier à partir du 3eme, que dois-je faire ?

J'ai tenté : For i = 3 To Sheets.Count
For J = 3 To Sheets.Count
mais ça ne fonctionne pas à coup sûr.

Merci d'avance

Jipé

Sub TriNomsOnglets()
On Error Resume Next
Dim i As Integer, J As Integer
For i = 1 To Sheets.Count
For J = 1 To Sheets.Count
If UCase(Sheets(J).Name) < UCase(Sheets(i).Name) Then
Sheets(J).Move Sheets(i)
End If
Next J
Next i
End Sub

6 réponses

Avatar
Yoyo
Bonsoir,

Peut-être ainsi :

Sub KeepSheets1and2()
'
Sheets("Sommaire").Move Before:=Sheets(1)
Sheets("Classe").Move Before:=Sheets(2)
End Sub

Amicalement
Yoyo

"Quaisako" a écrit dans le message de
news:
Bonsoir le Forum,

Ce code doit trier les onglets.
J'en ai 2 nommés "Sommaire" et "Classe", que j'aimerai garder à l'extrème
gauche de la barre d'onglets.

Pour trier à partir du 3eme, que dois-je faire ?

J'ai tenté : For i = 3 To Sheets.Count
For J = 3 To Sheets.Count
mais ça ne fonctionne pas à coup sûr.

Merci d'avance

Jipé

Sub TriNomsOnglets()
On Error Resume Next
Dim i As Integer, J As Integer
For i = 1 To Sheets.Count
For J = 1 To Sheets.Count
If UCase(Sheets(J).Name) < UCase(Sheets(i).Name) Then
Sheets(J).Move Sheets(i)
End If
Next J
Next i
End Sub




Avatar
michdenis
Bonjour Quaisako,

La procédure la plus complète est celle de Daniel Maher
disponible dans un fichier sur excelabo

http://www.excelabo.net/compteclic.php?nom=dma-trieronglets


Salutations!


"Quaisako" a écrit dans le message de news:
Bonsoir le Forum,

Ce code doit trier les onglets.
J'en ai 2 nommés "Sommaire" et "Classe", que j'aimerai garder à l'extrème
gauche de la barre d'onglets.

Pour trier à partir du 3eme, que dois-je faire ?

J'ai tenté : For i = 3 To Sheets.Count
For J = 3 To Sheets.Count
mais ça ne fonctionne pas à coup sûr.

Merci d'avance

Jipé

Sub TriNomsOnglets()
On Error Resume Next
Dim i As Integer, J As Integer
For i = 1 To Sheets.Count
For J = 1 To Sheets.Count
If UCase(Sheets(J).Name) < UCase(Sheets(i).Name) Then
Sheets(J).Move Sheets(i)
End If
Next J
Next i
End Sub
Avatar
Quaisako
Bonjour le Forum,

j'avais testé, et trouvais la procédure de Daniel Maher un peu compliquée à
automatiser, vu que dans mon cas je n'ai que des "string " à gérer.

Merci pour tout

Jipé


"michdenis" a écrit dans le message de news:

Bonjour Quaisako,

La procédure la plus complète est celle de Daniel Maher
disponible dans un fichier sur excelabo

http://www.excelabo.net/compteclic.php?nom=dma-trieronglets


Salutations!


"Quaisako" a écrit dans le message de news:

Bonsoir le Forum,

Ce code doit trier les onglets.
J'en ai 2 nommés "Sommaire" et "Classe", que j'aimerai garder à l'extrème
gauche de la barre d'onglets.

Pour trier à partir du 3eme, que dois-je faire ?

J'ai tenté : For i = 3 To Sheets.Count
For J = 3 To Sheets.Count
mais ça ne fonctionne pas à coup sûr.

Merci d'avance

Jipé

Sub TriNomsOnglets()
On Error Resume Next
Dim i As Integer, J As Integer
For i = 1 To Sheets.Count
For J = 1 To Sheets.Count
If UCase(Sheets(J).Name) < UCase(Sheets(i).Name) Then
Sheets(J).Move Sheets(i)
End If
Next J
Next i
End Sub





Avatar
michdenis
Bonjour Quaisako,

Il y aurait ceci :

'--------------------------------
Sub test()

Dim T()
ReDim T(1 To ThisWorkbook.Sheets.Count)

For a = 1 To UBound(T)
T(a) = Sheets(a).Name
Next
ListSort T
For a = 1 To UBound(T)
Sheets(T(a)).Move before:=Sheets(a)
Next

End Sub

'--------------------------------
Function ListSort(liSte)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i) > liSte(j) Then
Temp = liSte(j)
liSte(j) = liSte(i)
liSte(i) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
'--------------------------------


Salutations!



"Quaisako" a écrit dans le message de news: %
Bonjour le Forum,

j'avais testé, et trouvais la procédure de Daniel Maher un peu compliquée à
automatiser, vu que dans mon cas je n'ai que des "string " à gérer.

Merci pour tout

Jipé


"michdenis" a écrit dans le message de news:

Bonjour Quaisako,

La procédure la plus complète est celle de Daniel Maher
disponible dans un fichier sur excelabo

http://www.excelabo.net/compteclic.php?nom=dma-trieronglets


Salutations!


"Quaisako" a écrit dans le message de news:

Bonsoir le Forum,

Ce code doit trier les onglets.
J'en ai 2 nommés "Sommaire" et "Classe", que j'aimerai garder à l'extrème
gauche de la barre d'onglets.

Pour trier à partir du 3eme, que dois-je faire ?

J'ai tenté : For i = 3 To Sheets.Count
For J = 3 To Sheets.Count
mais ça ne fonctionne pas à coup sûr.

Merci d'avance

Jipé

Sub TriNomsOnglets()
On Error Resume Next
Dim i As Integer, J As Integer
For i = 1 To Sheets.Count
For J = 1 To Sheets.Count
If UCase(Sheets(J).Name) < UCase(Sheets(i).Name) Then
Sheets(J).Move Sheets(i)
End If
Next J
Next i
End Sub





Avatar
JB
Bonjour

Sub tri_ongletDirect()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
For j = i To Sheets.Count
If UCase(Sheets(j).Name) < UCase(Sheets(i).Name) Then
Sheets(i).Move before:=Sheets(j)
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
End Sub

Cordialement JB
Avatar
Quaisako
Bonsoir le Forum,

merci michdenis, merci JB.

C'est parfait, ça fonctionne.

Jipé