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

Résolu
nouyman Messages postés 7 Statut Membre -  
nouyman Messages postés 7 Statut Membre -
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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  2. nouyman Messages postés 7 Statut Membre
     
    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