Trier des onglets : code VBA qui gèle mon ordi à cause du nombre d'onglets

SOYA

XLDnaute Occasionnel
Bonjour à tous,

Je suis bien embêtée... J'ai essayé les deux codes suivants, piqués sur le site de Boisgontiers.

Sub tri_ongletDirect()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
For j = i To Sheets.Count
If UCase(Sheets(j).Name) < UCase(Sheets(i).Name) Then
Sheets(i).Move before:=Sheets(j)
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
End Sub

***************
Sub tri_ongletDirect2()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
For j = i To Sheets.Count
If IsNumeric(Sheets(j).Name) Then
x = String(30 - Len(Sheets(j).Name), "0") & Sheets(j).Name
Else
x = UCase(Sheets(j).Name)
End If
If IsNumeric(Sheets(i).Name) Then
y = String(30 - Len(Sheets(i).Name), "0") & Sheets(i).Name
Else
y = UCase(Sheets(i).Name)
End If
If x < y Then
Sheets(i).Move before:=Sheets(j)
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
End Sub

Ils fonctionnent tous les deux très bien pour des petits fichiers (j'ai testé juqu'à 15 onglets).
Malheureusement, mon fichier a 100 onglets et quand je démarre la macro, ça plante... Gel complet d'Excel, ctrl+alt+delete, fin de tâche, Microsoft Excel ne répond pas, etc... J'ai même patienté 10 minutes, pensant que ça lui prenait probablement bien plus de temps, mais c'était toujours bloqué au bout de 10 minutes.

Avez-vous une solution ? Pour info, le nom de mes onglets est numérique (à 6 chiffres).

Merci beaucoup !
 

néné06

XLDnaute Accro
Re : Trier des onglets : code VBA qui gèle mon ordi à cause du nombre d'onglets

Bonsoir Soya,

Une methode pour trier les onglets par ordre alphabetique:

sub tri_onglets
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
j=i
For k = i+1 To Sheets.Count
If Sheets(j).Name) >Sheets(k).Name) Then j=k
next k
if j <> i then Sheets(j).Move sheets (i)
next i
Application.ScreenUpdating = True
End Sub

A essayer ?

A+
 

SOYA

XLDnaute Occasionnel
Re : Trier des onglets : code VBA qui gèle mon ordi à cause du nombre d'onglets

Bonjour Néné !

Merci pour votre temps. Je veux bien tester votre code mais Excel détecte un problème de syntaxe avec la phrase :

If Sheets(j).Name) >Sheets(k).Name) Then j=k

Et je ne saurais dire lequel... :/
 

SOYA

XLDnaute Occasionnel
Re : Trier des onglets : code VBA qui gèle mon ordi à cause du nombre d'onglets

Yahoo !!!! Ça marche ! Un petit gel au début mais je l'ai laissé rouler pendant 2 ou 3 minutes et hop ! Le tri était fait.

Affaire conclue et un GRAND MERCI Néné :)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz