XL 2019 VBA pour créer un nouvel onglet

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 =...

Efgé

XLDnaute Barbatruc
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:

sum01

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
315 146
Messages
2 116 762
Membres
112 855
dernier inscrit
LionelS