Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • Date de début Date de début

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:
Hello,

J'ai l'impression que toutes les feuilles que tu crées ont la même structure. Du coup, ne serait-il pas intéressant de créer une feuille qui servirait de modèle ?

effectivement toutes les feuilles crées auront la meme structure
j'avais essayé cette solution avec une feuille "modèle"
mais j'ai trouvé plus simple de faire comme ça
 
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
2 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…