Numérotation automatique des feuilles dans un classeur excel

Résolu/Fermé
rorken Messages postés 17 Date d'inscription jeudi 4 avril 2019 Statut Membre Dernière intervention 4 novembre 2020 - 4 avril 2019 à 16:45
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 6 avril 2019 à 18:40
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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 4 avril 2019 à 17:27
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 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 424
4 avril 2019 à 18:04
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 jeudi 4 avril 2019 Statut Membre Dernière intervention 4 novembre 2020
4 avril 2019 à 18:22
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 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
6 avril 2019 à 11:50
Bonjour à tous,

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

:-)
eric
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 424
6 avril 2019 à 18:40
Argh, c'est beau ;-()

Bonne fin de journée
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 424
4 avril 2019 à 20:24
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 jeudi 4 avril 2019 Statut Membre Dernière intervention 4 novembre 2020
5 avril 2019 à 09:33
Merci je vais essayer, je te tiens au courant.

Cordialement
0
rorken Messages postés 17 Date d'inscription jeudi 4 avril 2019 Statut Membre Dernière intervention 4 novembre 2020
5 avril 2019 à 10:19
Re,
Avec une petite modification de mon fichier, ça passe, encore merci.

Cordialement
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 424
5 avril 2019 à 13:56
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