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