Création automatique d'onglets avec sa mise en forme

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

kito

XLDnaute Nouveau
Bonjour à tous,

J'ai un onglet "données" qui contient un tableau de 4 colonnes.
Le but de la manipulation est que lorsque je rajoute une ligne dans ce tableau, cela créer automatiquement un onglet avec pour titre la valeur de la colonne D (première colonne de mon tableau) et avec la mise en forme d'un onglet "masque".

La première étape de création de l'onglet se passe bien (cf. code ci-dessous) mais je manque de connaissance pour lui dire de rajouter le nouvel onglet à la fin de tous les autres; en dernier. pour le moment j'ai "Sheets.Add After:=Sheets("Données")"
Quels sont vos conseils pour cette partie? (n'hésitez pas à critiquer le code... )

Le deuxième étape souhaitée, serait que l'onglet qui vient de se créer, respecte la mise en forme (dessin tableau, cellule coloriée,...) d'un onglet "masque"...

Pour cette partie, je suis perdu.

Pouvez-vous m'aider?

Merci pour vos réponses.

Xavier

code création onglet:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Intersection As Range, Plage As Range
Dim i As Integer
i = Range("D65536").End(xlUp).Row
Set Plage = Range("C6: D" & i)
Set Intersection = Application.Intersect(Target, Plage)
If Intersection Is Nothing Then Exit Sub
On Error Resume Next
Sheets.Add After:=Sheets("Données")
ActiveSheet.Range("C6") = Intersection
ActiveSheet.Name = Intersection
Sheets("Données").Activate
End Sub
 
Re : Création automatique d'onglets avec sa mise en forme

Bonjour Kito, bonjour le forum,

Bienvenu parmi nous.

Je te propose ta macro modifiée où tu remplaceras bien sûr Ton_Onglet_Masqué par le nom de cet onglet masqué :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
 
Set Plage = Range("C6:D" & Range("D65536").End(xlUp).Row)
If Application.Intersect(Target, Plage) Is Nothing Then Exit Sub
On Error Resume Next
Sheets([COLOR=red]Ton_Onglet_Masqué[/COLOR]).Copy After:=Sheets(Sheets.Count) 'copie l'onglet masqué en dernier
ActiveSheet.Visible = True 'affiche l'onglet
ActiveSheet.Range("C6") = Target.Value
ActiveSheet.Name = Target.Value
Sheets("Données").Activate
End Sub
 
Re : Création automatique d'onglets avec sa mise en forme

Bonjour Kito, bonjour le forum,

Bienvenu parmi nous.

Je te propose ta macro modifiée où tu remplaceras bien sûr Ton_Onglet_Masqué par le nom de cet onglet masqué :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
 
Set Plage = Range("C6:D" & Range("D65536").End(xlUp).Row)
If Application.Intersect(Target, Plage) Is Nothing Then Exit Sub
On Error Resume Next
Sheets([COLOR=red]Ton_Onglet_Masqué[/COLOR]).Copy After:=Sheets(Sheets.Count) 'copie l'onglet masqué en dernier
ActiveSheet.Visible = True 'affiche l'onglet
ActiveSheet.Range("C6") = Target.Value
ActiveSheet.Name = Target.Value
Sheets("Données").Activate
End Sub

Bonjour Robert,

Je pense que ton code est parfait. Il est synthétique en 8 lignes et recopie bien la mise en forme.

Pour ceux qui voudraient juste recopier la mise en forme sans autre complication avant, j'ai essayé ça qui fonctionne.

Sub Macro1()
Dim j As Long
Application.ScreenUpdating = False
With Sheets("TBD")
.Range("A1:AZ100").Copy Destination:=ActiveSheet.Range("A1")
For j = 1 To 256
Columns(j).ColumnWidth = .Columns(j).ColumnWidth
Next j
For j = 1 To 100
Rows(j).RowHeight = .Rows(j).RowHeight
Next j
End With
Application.ScreenUpdating = True
End Sub

Merci encore

Xavier
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
3
Affichages
372
Réponses
25
Affichages
606
Réponses
5
Affichages
237
Retour