XL 2016 intégrer une macro sur les nouvelles feuilles crées

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
bonsoir à tous ca code que l'on m'a donnée sur le forum permet de créer de nouvelles feuilles automatiquent, j'ai juste rajouté le format, les entêtes ainsi que le lien pour le retour sur la feuille accueil
estce possible que lorsque j'ouvrirai ces nouvelles feuilles le curseur se mette automatiquement sur la premiere cellule vide de la colonne A
le code je sais faire mais je ne vois pas comment l'integrer au code ci dessus
j'espere avoir été assez clair
en gros je voudrais que chaque nouvelle feuilles crées intègrent la macro pour se positionner sur la premiere cellule vide
merci
SUJET RESOLU

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'ajouter feuille sur double clic colonne c
    Dim Nom_Feuille As String
    Dim Feuille As Worksheet

    If Not Intersect(Target, Range("C:C")) 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
              Feuille.Range("a3").Value = "DATE"
              Feuille.Range("B3").Value = "KILOMETRAGE"
              Feuille.Range("C3").Value = "ENTRETIEN REALISE"
              Feuille.Range("D3").Value = "PROCHAINE ECHEANCE"
          Feuille.Columns("B:B").ColumnWidth = 26.86
    Feuille.Columns("C:C").ColumnWidth = 37.71
    Feuille.Columns("C:C").ColumnWidth = 75.43
  Feuille.Columns("D:D").ColumnWidth = 40.14
  Feuille.Columns("C:C").ColumnWidth = 115.14
  Feuille.Columns("A:A").ColumnWidth = 17.43
  Feuille.Range("a3:d3").Select
 With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.249977111117893
        .PatternTintAndShade = 0
      Feuille.Range("A1").Select
       Feuille.Range("A1").Interior.ColorIndex = 4
     Feuille.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "ACCUEIL!A1", TextToDisplay:="Retour ACCUEIL"
            Feuille.Rows("4:4").Select
    ActiveWindow.FreezePanes = True

   
    End With
 
        End With
   
    End If
 
End Sub
 
Dernière modification par un modérateur:
j'avais essayé cette solution avec une feuille "modèle"
mais j'ai trouvé plus simple de faire comme ça
Tu es sûr : "plus simple" ???

Créer une macro qui crée une feuille puis y faire tout un tas d'écritures et de mises en forme te paraît vraiment plus simple que de copier une feuille modèle ?
 
Dernière édition:
Hello,

voici la version avec copie d'une feuille modèle (cachée)
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é copier la feuille modèle
        With ThisWorkbook
            Nb_Feuille = .Worksheets.Count
            Application.ScreenUpdating = False
            Sheets("Modèle").Visible = True
            Sheets("Modèle").Copy After:=Sheets(Nb_Feuille)
            ActiveSheet.Name = Nom_Feuille
            Sheets("Modèle").Visible = False
            Application.ScreenUpdating = True
        End With
        
    End If
    
End Sub
 

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
2
Affichages
1 K
A
Réponses
12
Affichages
1 K
AnjyD
A
J
Réponses
3
Affichages
1 K
Janis
J
B
Réponses
9
Affichages
1 K
BOUBRED
B
V
Réponses
2
Affichages
2 K
vynmarius
V
Retour