XL 2013 création d'une page nommé en fonction d'une cellule

mboillon

XLDnaute Nouveau
Bonjour,

Tout nouveau dans le domaine, j'aurai besoin de l'aide d'une personne plus compétente que moi pour un problème auquel je suis confronté.
Voici mon besoin :
J'aimerai que lorsque je j'écris dans une cellule choisie (ex: bonjour) une nouvelle page se créer avec le nom "bonjour".
Est-ce possible de créer cette macro ?
Si oui, quelqu'un peut-il m'éclairer ?

Merci d'avance.
 

JCGL

XLDnaute Barbatruc
Re : création d'une page nommé en fonction d'une cellule

Bonjour à tous,

Bienvenue sur XLD

A la modification de A1

VB:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Sheets.Add After:=ActiveSheet
Sheets(Sheets.Count).Name = [A1]
End Sub

A+ à tous
 

mboillon

XLDnaute Nouveau
Re : création d'une page nommé en fonction d'une cellule

Merci JCGL mais lorsque j'utilise ta formule (en la modifiant biensur) sur d'autres cellules ça ne fonctionne pas..
En effet pour une cellule ta formule fonctionne mais lorsque je le fait pour une deuxième, la page créer juste avant est effacée..
Est-ce normal ?
 

JCGL

XLDnaute Barbatruc
Re : création d'une page nommé en fonction d'une cellule

Bonjour à tous,
Salut Gilbert,

Peux-tu essayer :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Feuil1.[A1]
Feuil1.Activate
End Sub

A+ à tous
 

job75

XLDnaute Barbatruc
Re : création d'une page nommé en fonction d'une cellule

Bonsoir à tous,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And [A1] <> "" Then
  Sheets.Add After:=Sheets(Sheets.Count)
  Sheets(Sheets.Count).Name = [A1]
End If
End Sub
Attention il ne faut pas de caractères interdits * en A1...

* je vous laisse chercher...

A+
 

job75

XLDnaute Barbatruc
Re : création d'une page nommé en fonction d'une cellule

Re,

Plus élaboré :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Or [A1] = "" Then Exit Sub
Application.DisplayAlerts = False
On Error Resume Next
If IsError(Sheets(CStr([A1]))) Then Else _
  MsgBox "La feuille '" & [A1] & "' existe déjà...": Exit Sub
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = [A1]
If Sheets(Sheets.Count).Name <> [A1] Then _
  MsgBox "Caractère interdit...": Sheets(Sheets.Count).Delete: Me.Activate
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : création d'une page nommé en fonction d'une cellule

Re,

Pour finir, si l'on veut revenir à la feuille source utiliser Application.Goto :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Or [A1] = "" Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
If IsError(Sheets(CStr([A1]))) Then Else _
  MsgBox "La feuille '" & [A1] & "' existe déjà...": Exit Sub
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = [A1]
If Sheets(Sheets.Count).Name <> [A1] Then _
  MsgBox "Caractère interdit...": Sheets(Sheets.Count).Delete
Application.Goto [A1]
End Sub
A+
 

Discussions similaires