Trier les feuilles d'un classeur
Bonjour le forum,
j'aimerais classer certaines feuilles de mon classeur (couleur 13421823) par ordre aphabétique et qu'elles se trouvent après ma feuille 1.
J'ai trouvé ce code sur le net mais aucune idée de comment le modifier pour y mettre la couleur.
Pouvez-vous m'aider svp?
Sub TriFeuilsCrois()
Dim I As Integer, J As Integer
For I = 2 To Sheets.Count
For J = 2 To I - 1
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
Sheets(I).Move Before:=Sheets(J)
Exit For
End If
Next J
Next I
End SubBonjour Heavy_B,
Peut-être un code de ce type, à tester
Sub TriOnglets()
Application.ScreenUpdating = False
Dim iSheets As integer, i As Integer, j As Integer
iSheets = Sheets.Count
For i = 1 To iSheets - 1
If Sheets(i).Tab.Color = 13421823 Then
For j = i + 1 To iSheets
If Sheets(j).Tab.Color = 13421823 Then
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
End If
Next j
End If
Next i
Application.ScreenUpdating = True
End SubA+
Bonjour BrunoM45,
ca marche du tonnerre, petite question subsidiaire, comment puis-je faire exécuter ce code automatiquement (à l'ouverture du classeur ou à la création d'une feuille par exemple)?
Re,
"Auto_Open" outch
Il y a plus propre, dans ThisWorkbook, évènement
Private Sub Workbook_Open()
End SubA+
Re
En plus du fait que ce soit plus propre
1) Workbook_Open s'execute avant Auto_Open.
2) Workbook_Open se place dans le module du classeur, Auto_Open dans un module standard.
3) Lorsque on ouvre un classeur par macro sa procédure Auto_Open n'est pas exécuté, sa procédure Workbook_Open si.
4) Si les évènements sont désactivés avec Application.EnableEvents = False,
la procédure Auto_Open d'un classeur est exécuté s'il est ouvert par l'utilisateur, la procédure WorkBook_Open ne l'est pas.
Voila