Bonjour,
J'ai un classeur avec 2 feuilles à l'intérieur, respectivement nommées "Sheet1" et "Sheet2".
J'ai écris un programme pour rajouter 3 feuilles à ce classeur.
Je vais donc me retrouver dans excel avec les onglets suivants dans l'ordre suivant (car j'ai déjà rajouté des feuilles que j'ai ensuite supprimées) : Sheet1 - Sheet2 - Sheet20 - Sheet19 - Sheet18.
Je voudrais classer les onglets de mes feuilles correctement dans l'ordre, soit : Sheet1 - Sheet2 - Sheet18 - Sheet19 - Sheet20.
J'ai donc écris le programme suivant :
Sub Try507()
Dim i As Long
Dim j As Long
ThisWorkbook.Worksheets.Add after:=Worksheets("Sheet2"), Count:=3
For i = 1 To Worksheets.Count
For j = 1 To Worksheets.Count - 1
If LCase(Worksheets(j + 1).Name) < LCase(Worksheets(j).Name) Then
Worksheets(j + 1).Move before:=Worksheets(j)
Else
End If
Next
Next
Worksheets(3).Name = "Short"
Worksheets(4).Name = "Medium"
Worksheets(5).Name = "Long"
[...]
End Sub
Le problème c'est que VBA me classe les onglets dans l'ordre suivant : Sheet1 - Sheet18 - Sheet19 - Sheet2 - Sheet20.
Je ne comprends pas ce qu'il se passe...!
Est-ce que VBA croit que "Sheet18" et "Sheet19" soient égale à "Sheet1.8" et "Sheet1.9" ? Ce qui expliquerait le classement que VBA me donne...
Comment puis-je résoudre ce problème ?
En pièce jointe mon fichier Excel...
Merci beaucoup !
Cordialement,
ProutProutProut.