XL 2019 VBA pour créer un nouvel onglet

  • Initiateur de la discussion Initiateur de la discussion sum01
  • 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 !

sum01

XLDnaute Occasionnel
Bonjour le forum,
Je souhaiterais automatiser la création d'un nouvel onglet à chaque lancerment de la macro. J'ai utilisé ce code (mais très amateur car passé l'enregistrement). Par ailleurs, il ne fonctionne pas correctement car il ne reconnaît pas Feuil1. Je n'ai pas réussi à trouver un sujet semblable sur le forum.
Y-a-t-il d'autres pistes plus simple et plus "pro" ?

Merci d'avance pour votre aide
Bon début de semaine
Cdt

Sheets.Add After:=ActiveSheet
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "Résumé1"
Range("A1:B1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = -0.249946592608417
.PatternTintAndShade = 0
End With
Range("A1").Select
ActiveCell.FormulaR1C1 = "ID"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Motif"
Range("A1:B1").Select
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
 
Solution
Bonjour @sum01

78 messages et toujours pas de fichier exemple anonyme ?
Donc une réponse dans le vide:
car il ne reconnaît pas Feuil1
Si tu crées un onglet il ne s'appellera pas forcément Feuil1.
à chaque lancement de la macro
Donc il faut que le nom soit dynamique sinon Excel refusera de créer deux onglets du même nom.
Enfin, dans l'enregistreur de macro il y a beaucoup de choses inutiles comme les select que l'on peux supprimer.
Avec tout ça, je propose:
VB:
Sub OnAjoute()
Sheets.Add After:=Sheets(Sheets.Count)
With Sheets(Sheets.Count)
    .Name = "Résumé_" & Sheets.Count
    With .Range("A1:B1")
        .Font.ThemeColor = xlThemeColorDark1
        .Value = Array("ID", "Motif")
        .HorizontalAlignment =...
Bonjour @sum01

78 messages et toujours pas de fichier exemple anonyme ?
Donc une réponse dans le vide:
car il ne reconnaît pas Feuil1
Si tu crées un onglet il ne s'appellera pas forcément Feuil1.
à chaque lancement de la macro
Donc il faut que le nom soit dynamique sinon Excel refusera de créer deux onglets du même nom.
Enfin, dans l'enregistreur de macro il y a beaucoup de choses inutiles comme les select que l'on peux supprimer.
Avec tout ça, je propose:
VB:
Sub OnAjoute()
Sheets.Add After:=Sheets(Sheets.Count)
With Sheets(Sheets.Count)
    .Name = "Résumé_" & Sheets.Count
    With .Range("A1:B1")
        .Font.ThemeColor = xlThemeColorDark1
        .Value = Array("ID", "Motif")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        With .Interior
            .ThemeColor = xlThemeColorAccent1
            .TintAndShade = -0.249946592608417
        End With
    End With
End With
End Sub

Cordialement
 
Dernière édition:
Bonjour @sum01

78 messages et toujours pas de fichier exemple anonyme ?
Donc une réponse dans le vide:

Si tu crées un onglet il ne s'appellera pas forcément Feuil1.

Donc il faut que le nom soit dynamique sinon Excel refusera de créer deux onglets du même nom.
Enfin, dans l'enregistreur de macro il y a beaucoup de choses inutiles comme les select que l'on peux supprimer.
Avec tout ça, je propose:
VB:
Sub OnAjoute()
Sheets.Add After:=Sheets(Sheets.Count)
With Sheets(Sheets.Count)
    .Name = "Résumé_" & Sheets.Count
    With .Range("A1:B1")
        .Font.ThemeColor = xlThemeColorDark1
        .Value = Array("ID", "Motif")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        With .Interior
            .ThemeColor = xlThemeColorAccent1
            .TintAndShade = -0.249946592608417
        End With
    End With
End With
End Sub

Cordialement
Bonjour Efgé,
Oui c'est vrai mille excuses pour cela, j'aurais dû en effet mettre un fichier pour faciliter le travail de réponse. Cela fonctionne très bien. J'ai bien saisi votre explication et vous remercie pour cela.
Bonne journée
 
- 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
371
Réponses
17
Affichages
878
Réponses
3
Affichages
518
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
622
Réponses
0
Affichages
367
Réponses
11
Affichages
712
Retour