[VBA] trier les feuilles
Résolu
andy_kaufmann
Messages postés
41
Statut
Membre
-
Phob -
Phob -
bonjour,
comment peut on trier automatiquement les feuilles d'un classeur dans l'ordre alphabetique?
on est obligé de passer par une comparaison de nom de feuille ou existe-t-il une fonction plus élégante?
merci
comment peut on trier automatiquement les feuilles d'un classeur dans l'ordre alphabetique?
on est obligé de passer par une comparaison de nom de feuille ou existe-t-il une fonction plus élégante?
merci
A voir également:
- [VBA] trier les feuilles
- Excel trier par ordre croissant chiffre - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Bruler les feuilles de laurier - Guide
- Fusionner feuilles excel - Guide
4 réponses
Bonjour,
Rouler cette macro !
Lupin
Rouler cette macro !
Sub TrierOnglets()
Dim Boucle As Integer, Compteur As Integer
For Boucle = 1 To Sheets.Count
For Compteur = 1 To (Boucle - 1)
If (UCase(Sheets(Boucle).Name) < UCase(Sheets(Compteur).Name)) Then
Sheets(Boucle).Move before:=Sheets(Compteur)
Exit For
End If
Next Compteur
Next Boucle
End Sub
'
Lupin
Sub TrierOnglets() Dim Boucle As Integer, Compteur As Integer For Boucle = 1 To Sheets.Count If Sheets(Boucle).Visible = true then For Compteur = 1 To (Boucle - 1) If Sheets(Compteur).Visible = true then If (UCase(Sheets(Boucle).Name) < UCase(Sheets(Compteur).Name)) Then Sheets(Boucle).Move before:=Sheets(Compteur) Exit For End If EndIf Next Compteur EndIf Next Boucle End SubSub TrierOnglets() Dim Boucle As Integer, Compteur As Integer Dim list_Onglet() As String 'Enregistre le statut visible des onglets dans un tableau 2D ReDim Preserve list_Onglet(1 To Sheets.Count, 1) As String For Onglet = 1 To Sheets.Count list_Onglet(Onglet, 0) = Sheets(Onglet).Name list_Onglet(Onglet, 1) = Sheets(Onglet).Visible Next Onglet 'Trie les onglets For Boucle = 1 To Sheets.Count If Sheets(Boucle).Visible = False Then Sheets(Boucle).Visible = True For Compteur = 1 To (Boucle - 1) If (UCase(Sheets(Boucle).Name) < UCase(Sheets(Compteur).Name)) Then Sheets(Boucle).Move before:=Sheets(Compteur) Exit For End If Next Compteur Next Boucle 'Réattribue le statut initial de visibilité des onglets For Onglet = 1 To UBound(list_Onglet) If list_Onglet(Onglet, 1) = 0 Then Sheets(list_Onglet(Onglet, 0)).Visible = False End If Next Onglet End Sub