Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier automatiquement nom d'un nouvel onglet

Mapat

XLDnaute Occasionnel
Bonjour

J'ai un fichier dans lequel je rajoute très souvent un nouvel onglet.
Ces nouvelles feuilles sont nommées d'une suite de numéros 1, 2, 3 , etc ....
Est-il possible de pouvoir copier le nouveau n° du nouvel onglet créé dans une cellule
par ex A2 ?
Merci et bon après-midi
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Mapat, vgendron

En VBA et dans ThisWorkbook. Mais Feuil1 est nommée "Base" par exemple et sans besoin d'inscrire le numéro.

VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim i As Long, x As Long
x = 0
For i = 2 To Sheets.Count
x = x + 1
Sheets(i).Name = x
Next i
End Sub
 

Mapat

XLDnaute Occasionnel
Bonjour et merci de cette réponse
La formule ne fonctionne pas et la macro sert à lister toutes les feuilles
Ce que je voudrais, c'est comme une sorte de compteur qui inscrirait le n° de la nouvelle feuille
en a2
 

Pièces jointes

  • Nom de feuille.xlsm
    52 KB · Affichages: 30
  • Nom de feuille.xlsm
    52 KB · Affichages: 29
  • Nom de feuille.xlsm
    52 KB · Affichages: 25
  • Nom de feuille.xlsm
    52 KB · Affichages: 28
  • Nom de feuille.xlsm
    52 KB · Affichages: 22

Mapat

XLDnaute Occasionnel
Oups !!!.....
Pardonne moi je n'avais pas vu cette réponse
Et j'ai dû être bègue pour valider mon fichier joint !
J'ai copié ta macro dans ThisWorkbook mais ça ne marche pas
 

Pièces jointes

  • Nom de feuille.xlsm
    65.4 KB · Affichages: 24

Lone-wolf

XLDnaute Barbatruc
Re

Bein oui, quand on ne met pas le fichier, difficile à voir sa conception.

VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    With Sheets("Modèle")
        .Range("a2") = .Range("a2") + 1
        Sh.Name = .Range("a2")
    End With
End Sub
 

vgendron

XLDnaute Barbatruc
Hello

selon ce que j'ai compris..
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NouveauNum As Integer
Dim ws As Worksheet
Dim wsexist As Boolean

Application.ScreenUpdating = False
If Not Intersect(Target, Range("G9")) Is Nothing Then
    NouveauNum = Range("F9")
    wsexist = False
    If Range("F9").Value <> "" Then
        For Each ws In Worksheets
            If ws.Name Like NouveauNum Then
                wsexist = True
                Exit For
            End If
        Next ws
       
        If Not wsexist Then
            Worksheets("Modèle").Copy After:=Sheets("Modèle")
            ActiveSheet.Name = NouveauNum
            ActiveSheet.Range("a2") = NouveauNum
        End If
    End If
    Cancel = True
End If

Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…