VBA : Renommer les feuilles d'après un tableau

Résolu/Fermé
nouyman Messages postés 6 Date d'inscription vendredi 14 août 2015 Statut Membre Dernière intervention 20 août 2015 - Modifié par nouyman le 20/08/2015 à 13:16
nouyman Messages postés 6 Date d'inscription vendredi 14 août 2015 Statut Membre Dernière intervention 20 août 2015 - 20 août 2015 à 16:02
Bonjour à tous,

j'essaie de renommer mes pages suivant un tableau, mon souhait et juste que la première feuille aura le nom Section_**, ** étant la case voulu (ici la position F,X) et faire de même sur les autres pages avec la ligne + 1 et le réitérer suivant le nombre de valeur que j'ai de ligne dans mon tableau

Sub Rename_Page()
'n compte le nombre de Section
Sheets("MENU").Activate
nbcellsmenu = WorksheetFunction.CountA(Range("$F7:F240"))

For i = 0 To nbcellsmenu
    i = i + 1
    pageinc = 2 + i
    'Renomme les feuilles 20 fois
    Worksheets(pageinc).Name = Sheets("MENU").Cells(i + 7, 6).Value
    'feuille indexé = Section_"valeur de la case"
Next i
End Sub

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
20 août 2015 à 15:11
Bonjour,

Essaies ce code :
Option Explicit
Sub Rename_Page()
Dim cel As Range
Dim n°P As Integer
  n°P = 2
  For Each cel In Worksheets("MENU").Range("$F7:F240").Cells
    If cel.Formula <> "" Then
      Worksheets(n°P).Name = "Section_" & cel.Value
      n°P = n°P + 1
    End If
  Next cel
End Sub
Attention, il n'y a aucune sécurité dans ce code, il y aura erreur si le nombre de feuilles est insuffisant ou s'il y a des doublons !
0
nouyman Messages postés 6 Date d'inscription vendredi 14 août 2015 Statut Membre Dernière intervention 20 août 2015
20 août 2015 à 16:02
Bonjour Patrice337400,

j'ai trouvé une solution qui fonctionne, il ya à peine 5 minutes.

Merci :)

Je passe ce sujet en résolu


 Sub rename_page()
'But de la macro : renommer chaque page par une case d'un tableau de facon a avoir Section_**

Dim nb_classeur As Byte

nb_classeur = Worksheets.Count

For i = 2 To nb_classeur 'do the task i =2 to how many pages

Worksheets(i).Name = "SECTION " & Sheets("MENU").Cells(i + 5, 6).Value 'cells(line, column)

Next i
End Sub 
0