VBA - Feuille en ordre croissant
gorPweN
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerai savoir comment mettre les feuilles d'un classeur en ordre decroissant
sur VBA.
Ex: de nom de feuilles
Log_20100715-051100-002-GMT-0400
Log_20100714-092000-004-GMT-0400
Log_20100701-172900-005-GMT-0400
Log_20100702-060700-003-GMT-0400
Log_20100713-044400-003-GMT-0400
C'est les dates que j'ai mis en caractère gras que j'aimerai mettre en ordre decroissant.
Résultats souhaiter:
Log_20100715-051100-002-GMT-0400
Log_20100714-092000-004-GMT-0400
Log_20100713-044400-003-GMT-0400
Log_20100702-060700-003-GMT-0400
Log_20100701-172900-005-GMT-0400
merci,
J'aimerai savoir comment mettre les feuilles d'un classeur en ordre decroissant
sur VBA.
Ex: de nom de feuilles
Log_20100715-051100-002-GMT-0400
Log_20100714-092000-004-GMT-0400
Log_20100701-172900-005-GMT-0400
Log_20100702-060700-003-GMT-0400
Log_20100713-044400-003-GMT-0400
C'est les dates que j'ai mis en caractère gras que j'aimerai mettre en ordre decroissant.
Résultats souhaiter:
Log_20100715-051100-002-GMT-0400
Log_20100714-092000-004-GMT-0400
Log_20100713-044400-003-GMT-0400
Log_20100702-060700-003-GMT-0400
Log_20100701-172900-005-GMT-0400
merci,
A voir également:
- VBA - Feuille en ordre croissant
- Excel trier par ordre croissant chiffre - Guide
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
- Comment supprimer une feuille sur word - Guide
1 réponse
Bonjour,
essaies cette macro
edit: modifié dernière ligne
:-x
essaies cette macro
Option Explicit Sub ranger() Dim tablo() Dim nbre As Byte, cptr As Byte, i As Byte, j As Byte, k As Byte Dim tmp0 As String ' nombre de feuilles nbre = ThisWorkbook.Sheets.Count 'construit un tableau t "nbre" d'éléments ReDim tablo(nbre - 1) 'remplit le tableau avec le nom des onglets Do Until cptr = nbre tablo(cptr) = Sheets(cptr + 1).Name cptr = cptr + 1 Loop 'range le tableau dans l'ordre décroissant For i = 0 To nbre j = i For k = j + 1 To nbre - 1 If tablo(k) > tablo(j) Then j = k Next k If i <> j Then tmp0 = tablo(j) tablo(j) = tablo(i) tablo(i) = tmp0 End If Next i 'fige défilement de l'écran Application.ScreenUpdating = False 'range les feuilles dans l'ordre décroissant cptr = 0 For cptr = 0 To UBound(tablo) Sheets(tablo(cptr)).Move before:=Sheets(nbre) Next End Sub
edit: modifié dernière ligne
:-x
si croissant
et
Sheets(tablo(cptr)).Move before:=Sheets(1)