VBA - Feuille en ordre croissant
gorPweN
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 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
- Comment imprimer en a5 sur une feuille a4 - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Bruler feuille de laurier - Guide
- Feuille de score belote excel - Forum Graphisme
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
For k = j + 1 To nbre - 1 If tablo(k) <= tablo(j) Then j = k Next ket
Sheets(tablo(cptr)).Move before:=Sheets(1)