Ajout d'une feuille au double click

Résolu
yole -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Je souhaiterais ajouter une feuille portant le nom de la cellule au double click.

Jusque là tout va bien ça fonctionne mais mon problème c'est que cette nouvelle feuille je voudrais qu'elle soit créé à partir d'un modèle se trouvant dans la feuille modele.

Comment modifier mon vba pour obtenir ce que je souhaite :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim cel As Range
Dim ws As Worksheet
Dim Nom As String

If Target.Column <> 1 Then Exit Sub
On Error Resume Next
Nom = Target.Value
If Nom = "" Then Exit Sub
For Each ws In Worksheets
If ws.Name = Nom Then
Call MsgBox("La feuille avec ce nom existe déja.", vbCritical, "Impossible de créer une feuille")
Exit Sub
End If
Next ws
Sheets.Add , Sheets(Worksheets.Count)
ActiveSheet.Name = Nom
End Sub


En vous remerciant
A voir également:

2 réponses

cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,


Voici un exemple à adapter:


https://www.cjoint.com/c/HIyrcuKuo7Q

0
yole
 
Désolé mais je trouve pas
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Je ne trouve pas quoi?

Il y a un classeur à télécharger
0
yole
 
quand je rajoute une feuille ça efface la précédente de plus je souhaite vraiment me servir de mon code avec le double click sur la cellule qui va rajouter la feuille il me manque plus que le modèle à l'intérieur de la feuille
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
C'est tout simple:

dans l'exemple la feuille Active est la feuille2 et la feuille modèle la feuille 1 qui se trouve à gauche de la feuille 2.
La nouvelle feuille va se trouver à droite de la feuille 2

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim cel As Range
Dim ws As Worksheet
Dim Nom As String

If Target.Column <> 1 Then Exit Sub
On Error Resume Next
Nom = Target.Value
If Nom = "" Then Exit Sub
For Each ws In Worksheets
If ws.Name = Nom Then
Call MsgBox("La feuille avec ce nom existe déja.", vbCritical, "Impossible de créer une feuille")
Exit Sub
End If
Next ws
Sheets("Feuil1").Copy After:=Sheets(Worksheets.Count) 
ActiveSheet.Name = Nom
End Sub


Voilà

@+
0
yole
 
ah oui c'est facile j'avais essayé ce code mais avec une erreur vraiment merci pour ton aide et ta réactivité
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Le problème c'est la position des feuilles

Si c'est résolu, pense à cliquez sur Résolu avec la Roue crantée en haut à droite

@+ Le Pivert
0