XL 2013 En-tête qui disparaît lors d'une nouvelle copie de feuille

Benes

XLDnaute Nouveau
Bonjour

J'ai un souci, j'ai mis un filigrane sur la feuille synthèse que je dois imprimer en suivant les différentes méthodes que j'ai pu trouver ici et là en passant par une en-tête.
Mon problème c'est que quand je crée des copies de cette feuille grâce à la macro que m'a gentiment écrit Sylvanu, l’en-tête disparaît. Je crois comprendre que c'est du fait que je copie la mise en forme et non pas la mise en page. J'ai donc récupéré un petit bout de code qui lui fonctionne et copie bien l'en-tête sur la feuille créé, mais je n’arrive pas à l’intégrer dans ma boucle de création de feuille. Si quelqu'un pouvait me donner un petit coup de main cela m’arrangerai car je lutte mais ne trouve pas.
Je joins mon fichier simplifié ainsi que le fichier qui lui fonctionne, même si les experts utiliserons peut être une autre méthode.

D'avance merci
 

Pièces jointes

  • MON_PROBLEME_COPIE.xlsm
    316.1 KB · Affichages: 12
  • Ce_qui_semble_marcher.xlsm
    83.3 KB · Affichages: 4
Dernière édition:
Solution
Re,
Quand je vois dans le code :
VB:
            Sheets("COMPETENCES").Select
            Cells.Select  ' avec cells=Range("A1:AS1")
Je ne comprends pas l'utilité de cette copie.
En PJ, un exemple. On duplique Compétences avec le fond, on renomme, on supprime toutes les colonnes à l'exception des deux tableaux.
Ca reprends un peu ce qu'il y a dans le fichier "Ce qui marche".

Benes

XLDnaute Nouveau
Bonjour
Merci pour votre réponse.
J'avoue ne pas bien comprendre votre explication.
J'ai testé le code que vous m'avez renvoyé mes cela ne semble pas fonctionner non plus.
L'en-tête n’apparaît pas sur les nouvelles feuilles créées. J'ai ensuite été voir votre code et il semble que m'avez simplifier une parti du code de création des feuilles mais cette macro ne me pose pas de problème, a part si cela est fait pour pouvoir intégrer le morceau de code qui permettra de copier l'en-tête mais cela n'est clairement pas de mon niveau.
Votre code fonctionne chez vous pour la copie d'en-tête et ce serai un problème autre que le code?
Encore merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Benes, Bebere,
Ne serait il pas plus simple de dupliquer la feuille Compétences puis de la nettoyer ( on garde alors l'arrière plan ) que de creer une page et de copier les valeurs ?
On peut dupliquer facilement une feuille avec :
VB:
Sub DupliquePage()
    Sheets("COMPETENCES").Select
    Sheets("COMPETENCES").Copy After:=Worksheets(Worksheets.Count)
End Sub
 

Benes

XLDnaute Nouveau
Ho Bonjour Sylvanu
je duplique puis nettoie et garde arrière plan, cela veut dire que je me retrouve avec une feuille vierge contenant l'en-tète?
et ensuite je dois recopier a nouveau avec l'autre méthode pour remettre le contenu?
Je crois que je suis a coté et ne comprends pas tout.
Comment je peux intégrer ces ligne de code? Je dois les mettre dans la boucle de "ajout_feuilles" ou cela doit tourner a part?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Quand je vois dans le code :
VB:
            Sheets("COMPETENCES").Select
            Cells.Select  ' avec cells=Range("A1:AS1")
Je ne comprends pas l'utilité de cette copie.
En PJ, un exemple. On duplique Compétences avec le fond, on renomme, on supprime toutes les colonnes à l'exception des deux tableaux.
Ca reprends un peu ce qu'il y a dans le fichier "Ce qui marche".
 

Pièces jointes

  • Copie de MON_PROBLEME_COPIE-2.xlsm
    211.2 KB · Affichages: 4

Benes

XLDnaute Nouveau
Oh oh oh ... Cool ça fonctionne!!! il ne me réaffiche plus l'onglet créé mais je dois pouvoir bidouiller tout ça pour remettre comme a l'origine. Là je dois partir bosser mais dés mon retour je me replonge dans le code pour comprendre et remettre en place sur LE fichier original. Encore merci, je te dis ce soir ou demain matin des que tout fonctionne histoire de te tenir au courant et te remercier une fois de plus.
Merci
 

Benes

XLDnaute Nouveau
Oh oh oh ... Cool ça fonctionne!!! il ne me réaffiche plus l'onglet créé mais je dois pouvoir bidouiller tout ça pour remettre comme a l'origine. Là je dois partir bosser mais dés mon retour je me replonge dans le code pour comprendre et remettre en place sur LE fichier original. Encore merci, je te dis ce soir ou demain matin des que tout fonctionne histoire de te tenir au courant et te remercier une fois de plus.
Merci
A si si il reaffiche...
Bon je regarde plus tard pour comprendre... ++ Merci
 

Benes

XLDnaute Nouveau
Bonsoir Sylvanu
J'ai repris le petit bout de code puis l'ai intégré à mon fichier. Super, le filigrane est bien là, par contre gros souci dans mes colones et meme une parti de la page a disparu. Du coup je m’intéresse au code de plus prêts et me dis que cela doit venir des lignes

Columns("A:A").Delete Shift:=xlToLeft
Columns("G:G").ColumnWidth = 3
Columns("AO:DZ").Delete Shift:=xlToLeft

vu que cela fait référence a des lignes et colonnes qui ne sont pas les mêmes que mon fichier d'origine. Je me retrousse les manches et m'apprete a bien comprendre pour pouvoir modifier. Dans un premier temps je mets tout en commentaire pour comprendre ligne par ligne de code, et là grande surprise, après un seul changement je me rend compte que mon filigrane est bien copié. Youpi!!

Au final la seul modif que j'ai eu à faire c'est celle ci

' Sheets.Add Count:=1, After:=Worksheets(Worksheets.Count)

Sheets("COMPETENCES").Select
Sheets("COMPETENCES").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nom

' Columns("A:A").Delete Shift:=xlToLeft
' Columns("G:G").ColumnWidth = 3
' Columns("AO:DZ").Delete Shift:=xlToLeft
' Sheets("COMPETENCES").Select
' Cells.Select
' Selection.Copy
' Sheets(nom).Select
' ActiveSheet.Paste
' ActiveWorkbook.Worksheets(nom).Activate

En fin de compte, je n'utilise pas les ligne Columns et juste les 3 lignes suivantes fond le boulot

Sheets("COMPETENCES").Select
Sheets("COMPETENCES").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nom

Encore Merci Sylvanu pour ton temps et le partage de tes compétences.
 

Discussions similaires