Microsoft 365 créer nouvelle feuille avec une adition dans son nom

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 !

ALBAN34LA

XLDnaute Nouveau
Bonjour à tous,

je suis à la recherche d'un code pour:

je suis sur ma feuille nommée "01".
je souhait ajouter une nouvelle feuille nommée comme la précédente +1, soit en l'occurrence ici elle s'appellerait donc "02" et aller sur cette nouvelle feuille.
si la feuille "02" existe déjà alors aller directement sur la feuille "02".
de plus il vaut que cette nouvelle feuille recopie le feuille "matrice".

si je me trouve sur la feuille "34", la précédente sera donc la "35" ... etc

je vous remercie par avance 😊
 
Solution
Bonjour,
VB:
Feuille visible : Sheets("Matrice").Visible = True
Feuille masquée : Sheets("Matrice").Visible = xlVeryHidden
Le statur xlVeryHidden rend la feuille invisible même dans la liste Afficher quand on clic droit sur un nom d'onglet. Elle n'est visible qu'en VBA.
Bonjour @ALBAN34LA, bienvenue sur XLD 🙂,

Voici une proposition avec une macro VBA. La macro est dans le module "Module1".
Pour activer la macro, tapez la combinaison des trois touches Contrôle+Majuscule+w
Cette macro ne fonctionne que pour les feuilles ayant un nom entre "01" et "98".
Si la feuille a un autre nom (yc "99"), la macro ne fait rien.

edit : bonjour @sylvanu 🙂

Le code de la macro :
VB:
Sub Select_Ajouter_Feuil()
Dim n, s, i&
   On Error Resume Next: n = CDbl(ActiveSheet.Name): On Error GoTo 0
   If n <> Int(n) Then Exit Sub
   If n < 1 Or n > 98 Then Exit Sub
   n = n + 1: s = Format(n, "00")
   On Error GoTo ERR_new
   Application.Goto Sheets(s).Range("a1")
   Exit Sub
ERR_new:
   For i = Sheets.Count To 1 Step -1
      If Sheets(i).Name Like "##" Then Sheets("Matrice").Copy after:=Sheets(i): ActiveSheet.Name = s: Exit Sub
   Next i
End Sub
 

Pièces jointes

Re, bonjour Mapomme, xUpsilon,
Un essai pour le fun avec :
VB:
Sub Suivant()
Dim Nom$, NouveauNom$
Nom = ActiveSheet.Name                                      ' Récupération nom onglet
If Nom = "Matrice" Then Exit Sub                            ' Si c'est Matrice, on sort
NouveauNom = CStr(1 + CInt(Nom))                            ' Nouveau nom = Numéro onglet +1, en chaine caractères
If FeuilleExiste(NouveauNom) Then                           ' Si cette feuille existe
    Sheets(NouveauNom).Select: Exit Sub                     ' On y va
Else                                                        ' Sinon
    Sheets("Matrice").Copy After:=Worksheets(Sheets.Count)  ' On duplique Matrice à la fin
    ActiveSheet.Name = NouveauNom                           ' On la renomme
    Sheets(NouveauNom).Select                               ' On y va
End If
End Sub
Function FeuilleExiste(Nom As String) As Boolean            ' Répond True si la feuille Nom existe
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function
 

Pièces jointes

Bonjour,
VB:
Feuille visible : Sheets("Matrice").Visible = True
Feuille masquée : Sheets("Matrice").Visible = xlVeryHidden
Le statur xlVeryHidden rend la feuille invisible même dans la liste Afficher quand on clic droit sur un nom d'onglet. Elle n'est visible qu'en VBA.
 

Pièces jointes

- 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
520
Retour