Numérotation automatique des feuilles dans un classeur excel

Résolu
rorken Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Qui serait me dire comment, dans un classeur excel qui contient de 100 à plus de 300 feuilles, faire une numérotation automatique des feuilles de 001 pour la première jusqu'à la fin en sachant que les feuilles que je souhaite numéroter ne sont pas au début de mon classeur.

Cordialement

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

comme ceci:

Sub ListerOnglets()
' Liste uniquement les onglets de type "Feuille"
' Les onglets de type "Graphique" ne sont pas inclus
Dim ws As Worksheet
Dim i As Integer
i = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Index > 5 Then 'démarre après le 5ème onglet à adapter
ws.Name = "00" & i
i = i + 1
End If
Next ws
End Sub


3
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous les deux

Une petite modification à la proposition de cs_LePivert (salut cordial au passage) pour caler les noms sur 3 caractères

Sub ListerOnglets()
' Liste uniquement les onglets de type "Feuille"
' Les onglets de type "Graphique" ne sont pas inclus
Dim ws As Worksheet
Dim i As Integer, s As String
i = 1
For Each ws In ThisWorkbook.Worksheets
  If ws.Index > 5 Then 'démarre après le 5ème onglet à adapter
    Select Case Int(Log(i) / Log(10))
      Case 0: s = "00" & i
      Case 1: s = "0" & i
      Case 2: s = "" & i
    End Select
    ws.Name = s
    i = i + 1
  End If
Next ws
End Sub

Cdlmnt
1
rorken Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à vous deux,
Le soucis est que je n'y connais pas grand chose en VBA ou macro, il y aurait'il une autre solution sans arriver dans une usine.
Merci à vous.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour à tous,

joli exercice de style ccm ;-)
D'autres auraient mis :
ws.Name = format(s,"000")

:-)
eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Argh, c'est beau ;-()

Bonne fin de journée
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Pas de solution sans VBA
Par prudence, faire la manip sur une copie de ton fichier
1. Alt-F11 pour accéder à l'éditeur vba
2. Insertion/Module pour créer un Module1
3. Coller tout le code dans ce module 1
4. Retour à une feuille
5. Outils/Macros/Sélectionner la macro/Exécuter
6. C'est tout

Cdlmnt
1
rorken Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je vais essayer, je te tiens au courant.

Cordialement
0
rorken Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Re,
Avec une petite modification de mon fichier, ça passe, encore merci.

Cordialement
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)

Bon après midi
0