Microsoft 365 Donner a une cellule le nom de la feuille

  • Initiateur de la discussion Initiateur de la discussion Faroyo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
518
Retour