Bonsoir Lolocool, bonsoir le forum,
Range("A65536).End(xlUp).Offset(1,0).Select, sélectionne la première cellule vide de la colonne A.
pour le classement des feuilles, je pense qu'il y doit y avoir moyen de le faire sans rajouter une feuille mais j'ai pas réussi. Malgré tout, la macro ci-dessous fonctionne parfaitement.
Public Sub clas()
Dim f As Byte 'déclare la variable f
Dim x As Byte 'déclare la variable x
f = Sheets.Count 'définit la variable f (nombre de feuilles dans le classeur)
Sheets("histo").Move before:=Sheets(1) 'place la feuille "histo" en premier
Sheets("ref general").Move after:=Sheets(f) 'place la feuille "ref general" en dernier
Sheets("nouvel ref").Move before:=Sheets(f) 'place la feuille "nouvel ref" en avant-dernier
Sheets("vierge").Move before:=Sheets("nouvel ref") 'place la feuille "vierge" en avant-avant-dernier
Sheets.Add.Move after:=Sheets(f) 'rajoute une nouvelle feuille en dernier
'boucle sur (f - 4) valeurs. Les feuilles "histo", "vierge",
'"nouvelle ref" et "ref general" ne sont pas prises en compte
For x = 1 To f - 4
'place, à partir de A1, le nom des feuilles en partant de la seconde
Cells(x, 1).Value = Sheets(x + 1).Name
Next x 'prochaine valeur
Range("A1").Sort Key1:=Range("A1") 'trie le nom des feuilles par ordre alphabétique
Dim nom() As String 'déclare le tableau nom
'boucle sur (f - 4) valeurs
For x = 1 To f - 4
ReDim Preserve nom(x) 'redimensionne le tableau
nom(x - 1) = Cells(x, 1).Value 'remplit le tableau des valeurs des cellules en A
Next x 'prochaine valeur
Application.DisplayAlerts = False 'masque les messages Excel (suppression de feuille)
Sheets(Sheets.Count).Delete 'supprime la dernière feuille
Application.DisplayAlerts = False 'affiche les messages Excel
'boucle sur (f - 4) valeurs
For x = 1 To f - 4
Sheets(nom(x - 1)).Move after:=Sheets(x) 'place les feuilles dans l'ordre
Next x 'prochaine valeur
End Sub
À plus,
Robert