Copier entete d'une feuille pour l'appliquer sur une nouvelle feuille

Bonjour le forum

comment ça va ?

je viens vers vous aujourd'hui pour vous presenter mon probleme

j'ai un code qui me permet de créer une nouvelle feuille avec le nom quand la feuille n'exite pas au paravant.

Mais je voudrais que la feuille vienne avec la même entete que ma feuille 1 (que je vais après masquer)

voici mon code, je ne sais pas quelle formule utiliser pour copier l'entete de la feuille 1 qui va de A1 a N3 (trois lignes)

voici mon code d'ajout

Private Sub CommandButton8_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If ThisWorkbook.Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If
ThisWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom

Unload Me
UserForm1.Show
End Sub

merci de bien vouloir m'aider

Bonjour,

Ce n'est peut être pas ce que tu attends mais en faisant un simple copier coller avec les formats doit être bon non ?

    Range("A1:N3").Select
    Selection.Copy
    Range("A1").Select
    ActiveSheet.Paste

bien à toi.

je vois qu'il selectionne tres bien la partie choisie mais il ne colle pas dans la nouvelle feuille.

je vous ai renvoyé le code complet

Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("C-CLIENT").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If
 Range("A1:N3").Select
    Selection.Copy
    Range("A1").Select
    ActiveSheet.Paste
Workbooks("C-CLIENT").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom

Unload Me
UserForm1.Show
End Sub

On part sur le principe que ta feuille de référence c'est la feuille 1.

Donc on copie la rangée A1:N3 puis on colle avec format

Le code est le suivant :

Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("C-CLIENT").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("C-CLIENT").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom

        Workbooks("C-CLIENT").Sheets(1).Activate
        Range("A1:N3").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste

Unload Me
UserForm1.Show
End Sub

tu peux optimiser ton code en ajoutant

Sub xx()
Application.ScreenUpdating = False
'Ton code
Application.ScreenUpdating = True
end sub

ça fonctionne bien. Merci. pour l'optimisation, je dois mettre le code ou ? dans le code du userform ?

J'aimerais aussi savoir si on peut ajouter un petit code a votre premier code qui va me permettre d'avoir la même dimension des case de l'entete ? parce que toutes les cases n'ont pas les même tailles dans la feuille 1

Deja merci beaucoup

Ah ben dans ce cas, il suffit de copier les colonnes au lieu de la plage.

Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("C-CLIENT").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("C-CLIENT").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom
        Application.ScreenUpdating = False
        Workbooks("C-CLIENT").Sheets(1).Activate
        Columns("A:N").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste
        Application.ScreenUpdating = True
Unload Me
UserForm1.Show
End Sub

non le premier est mieux, il prends juste l'entête, celui la prend toute la feuille de A a N

pourtant je veux juste l'entete.

Je voulais juste que les dispositions soit les même, les tailles au fait

Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("C-CLIENT").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("C-CLIENT").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom
        Application.ScreenUpdating = False
        Workbooks("C-CLIENT").Sheets(1).Activate
        Range("A1:N3").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste
        'On copie colle uniquement le format des colonnes
        Workbooks("C-CLIENT").Sheets(1).Activate
        Columns("A:N").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
         Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.ScreenUpdating = True
Unload Me
UserForm1.Show
End Sub

c'est plus que parfait

grand merci, mais ça ne marche pas pour le deuxieme bouton qui doit ouvrir les feuilles du classeur principal.

on me met l'erreur a ce niveau

Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("AVIONS").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("AVIONS").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom
        Application.ScreenUpdating = False
        Workbooks("AVIONS").Sheets(1).Activate
        Range("A1:N3").Select
        Selection.Copy
        Workbooks("AVIONS").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste
        'On copie colle uniquement le format des colonnes
        Workbooks("AVIONS").Sheets(1).Activate
        Columns("A:N").Select
        Selection.Copy
        Workbooks("AVIONS").Sheets(Nom).Activate
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.ScreenUpdating = True
Unload Me
UserForm1.Show
End Sub

j'ai juste changer les noms de feuilles

j'ai l'impression que les deux codes ne peuvent pas marcher ensemble, parce que lorsque je change l'autre passe et l'autre nom.

Voici les codes de mon bouton 8 et 9 qui sont censé ajouter des feuilles avec nom a chaque classeurs

Private Sub CommandButton8_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau client svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("C-CLIENT").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("C-CLIENT").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom
        Application.ScreenUpdating = False
        Workbooks("C-CLIENT").Sheets(1).Activate
        Range("A1:Q3").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste
        'On copie colle uniquement le format des colonnes
        Workbooks("C-CLIENT").Sheets(1).Activate
        Columns("A:Q").Select
        Selection.Copy
        Workbooks("C-CLIENT").Sheets(Nom).Activate
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.ScreenUpdating = True
Unload Me
UserForm1.Show
End Sub
Private Sub CommandButton9_Click()
Dim Nom As String, i As Byte, Verif As Boolean, myMonth As Integer, myYear As Integer, myDate As Date, ee As String, a As Long
 myDate = Date ' enregistre la date d'aujourd'hui dans la variable myDate

myMonth = (Month(myDate))  ' No du mois précédent
myYear = Year(Date) 'No année
ee = ""
recom:
Verif = False
Nom = InputBox("Définissez le nom du nouveau svp", "Ajout nouveau client") & "" & (myMonth) & " - " & myYear

If Nom = "" Then Exit Sub

For i = 1 To Sheets.Count
    If Workbooks("AVIONS").Sheets(i).Name = Nom Then Verif = True
Next

If Verif = True Then
    MsgBox "la feuille " & Nom & " existe déjà, veuillez choisir un autre nom"
    GoTo recom
End If

Workbooks("AVIONS").Sheets.Add(After:=Sheets(Sheets.Count)).Name = Nom
        Application.ScreenUpdating = False
        Workbooks("AVIONS").Sheets(1).Activate
        Range("A1:P3").Select
        Selection.Copy
        Workbooks("AVIONS").Sheets(Nom).Activate
        Range("A1").Select
        ActiveSheet.Paste
        'On copie colle uniquement le format des colonnes
        Workbooks("AVIONS").Sheets(1).Activate
        Columns("A:P").Select
        Selection.Copy
        Workbooks("AVIONS").Sheets(Nom).Activate
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.ScreenUpdating = True
Unload Me
UserForm1.Show
End Sub

je suis perdu

Bonjour,

peux tu me montrer le fichier ?

il y a un soucis dans l'ajout des feuilles, le bouton est representé par des + sur le userform.

l'ouverture du classeur AVIONS ouvre automatiquement l'autre

8avions.xlsm (337.66 Ko)
10c-client.xlsm (12.78 Ko)
5avions.xlsm (341.67 Ko)
5c-client.xlsm (21.71 Ko)

les deux boutons fonctionnent parfaitement chez vous ? chez moi non

j'ajoute parfaitement une feuille dans C-CLIENT avec le bouton plus devant le flight route mais avec le bouton devant le aircraft ça me met une erreur d'exécution '424' Objet requis

la ligne soulignée est For i = 1 To .Worksheets.Count

a vous

merci de rester avec moi

j'ai essayé de mettre le code (qui fonctionne) dans l'autre en adaptant mais ça me genere encore une erreur a ce niveau

une erreur d'execution '1004' qui me dit quil est impossible de lire la proprité Add de la classe Sheet

un vrai probleme avec ses deux boutons

Rebonjour

J'avais pas testé le 2e bouton dsl ..

9avions.xlsm (343.03 Ko)
4c-client.xlsm (27.73 Ko)

Grand merci a toi

Rechercher des sujets similaires à "copier entete feuille appliquer nouvelle"