Microsoft 365 Donner a une cellule le nom de la feuille

Faroyo

XLDnaute Junior
Bonjour,
j'ai fait une petite macro pour ajouter des feuilles dans mon dossier en fonction de la valeur d'une cellule (feuille A cellule C9). A présent, je recherche le moyen de donner à cellule C2 de chaque page créée le nom de sa feuille.
Ex: si ma feuille se nomme "page_(1) j'aimerai avoir "page_(1)" en C2 et ainsi de suite, "page_(2) -> C2 = "page_(2)"....

Merci pour votre aide

Faroyo
 

Pièces jointes

  • test (2).xlsm
    75.6 KB · Affichages: 6
Solution
le code ci dessous, créé la plage nommée ET met le nom de la feuille en C2

VB:
Sub CreateSheets()

    Dim facilitiesNum As Long
    Dim i As Byte
    Dim sh As Worksheet
    
    Worksheets("A").Activate
    On Error Resume Next
    
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If InStr(1, "A,Database,page_(1),", sh.Name) = 0 Then sh.Delete
    Next sh
    Application.DisplayAlerts = True
    
    With Sheets("A")
        facilitiesNum = .Range("C9").Value 'on récupère le nombre de tableaux à créer
    End With
    Sheets("Page_(1)").Names.Delete 'supprime la plage nommée, sinon, elle est recopiée dans tous les onglets (étendue classeur)
    For i = 2 To facilitiesNum
        Sheets("page_(1)").Copy...

vgendron

XLDnaute Barbatruc
le code ci dessous, créé la plage nommée ET met le nom de la feuille en C2

VB:
Sub CreateSheets()

    Dim facilitiesNum As Long
    Dim i As Byte
    Dim sh As Worksheet
    
    Worksheets("A").Activate
    On Error Resume Next
    
    Application.DisplayAlerts = False
    For Each sh In Worksheets
        If InStr(1, "A,Database,page_(1),", sh.Name) = 0 Then sh.Delete
    Next sh
    Application.DisplayAlerts = True
    
    With Sheets("A")
        facilitiesNum = .Range("C9").Value 'on récupère le nombre de tableaux à créer
    End With
    Sheets("Page_(1)").Names.Delete 'supprime la plage nommée, sinon, elle est recopiée dans tous les onglets (étendue classeur)
    For i = 2 To facilitiesNum
        Sheets("page_(1)").Copy After:=Sheets(i)
        ActiveSheet.Names.Add Name:="page_" & i, RefersTo:="='Page_(" & i & ")'!$C$2"
        ActiveSheet.Range("C2") = "page_(" & i & ")"
    Next i
    Sheets("Page_(1)").Names.Add Name:="page_1", RefersTo:="='Page_(1)'!$C$2" 'on recréé la plage nommée
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 013
Messages
2 104 547
Membres
109 073
dernier inscrit
hichamkot