XL 2016 ajouter, une nouvelle feuille avec le contenu d'une cellule

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 !

pascal21

XLDnaute Barbatruc
bonjour à tous
en colonne A
sur un double clic dans une cellule , je voudrais créer une nouvelle feuille qui prendrait le nom du contenu de la cellule double cliquée
si cette feuille est déjà crée alors aller directement à cette feuille
exemple contenu de la cellule "HJ-252-AA" la nouvelle feuille doit avoir pour nom HJ-252-AA
comment faire cela ?
je pourrais me servir des liens hypertexte mais ce n'est pas moi qui travaillerai sur le fichier et la liste en colonne A est évolutive
merci
 
Hello

à mettre dans la feuille qui contient les noms des feuilles à créer

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim Nom_Feuille As String
    Dim Feuille As Worksheet

    If Not Intersect(Target, Range("A:A")) Is Nothing And Target.Value <> "" Then
        
        ' désactive le double clic
        Cancel = True
        Nom_Feuille = Target.Value
        
        ' cherche la feuille, si trouvé l'active et sort
        For Each Feuille In ThisWorkbook.Worksheets
            If Feuille.Name = Nom_Feuille Then
                Sheets(Nom_Feuille).Activate
                Exit Sub
            End If
        Next Feuille

        ' puisque pas trouvé la créer et l'activer
        With ThisWorkbook
            Set Feuille = .Worksheets.Add(After:=.Worksheets(.Worksheets.Count))
            Feuille.Name = Nom_Feuille
            Feuille.Activate
        End With
        
    End If
    
End Sub
 

Pièces jointes

Bonjour pascal21, le forum,

Testez cette macro :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Columns(1)) Is Nothing Or Target(1) = "" Then Exit Sub
Dim nom$, Sh As Object
nom = Left(Target(1), 31) 'le nom d'une feuille est limité à 31 caractères
Cancel = True
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Set Sh = Sheets(nom)
If Sh Is Nothing Then
    Err = 0
    Sheets("DATA").Copy After:=Sheets(Sheets.Count)
    If Err Then MsgBox "Vous devez créer la feuille 'DATA' !", 48: Exit Sub
    ActiveSheet.Name = nom
    If Err Then
        MsgBox nom & " contient un caractère interdit dans les noms des feuilles !", 48
        ActiveSheet.Delete
        Me.Activate
    End If
Else
    Sh.Activate
End If
End Sub
A+
 

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
4
Affichages
558
Retour