Format de la feuille lors que copie de la feuille avec module

Bonjour.

J'ai un module qui sert à créer une copie de la feuille active.

Pour les données tout est conforme, mais le format de la feuille n'est pas identique (largueur de colonnes, taille du texte etc.)

Je crois que ce sera un pasteformat mais je ne sais pas trop où l'intégrer.

MErci de votre support

Sub ajoutfeuille()

'*********************************
'Module servant a créer une copie de la feuille remplir
'****************************

Dim nom_souhaite$, nom_feuille$

nom_souhaite = Range("C6").Value '<<<<<< remplacer
nom_feuille = nom_souhaite '1er test avec nom souhaité

While WsExists(nom_feuille) 'tant que la feuille nommée nom_feuille existe, on exécute ce qui suit :
    i = i + 1 'incrémentation
    nom_feuille = nom_souhaite & "(" & i & ")" 'nom_feuille = nom_souhaite & indice incrémenté pour nouveau test
Wend

Worksheets.Add After:=Worksheets("remplir")

With ActiveSheet
    Worksheets("remplir").Range("A1:h51").Copy Destination:=.Cells(1, 1)
    .Name = nom_feuille

End With

'Worksheets("remplir").Activate

End Sub

Bonjour,

Pour garder le format de la feuille, le plus simple serait de copier (voir ci-dessous) la feuille et pas uniquement une plage de cellules.

Sub ajoutfeuille()

'*********************************
'Module servant a créer une copie de la feuille remplir
'****************************

Dim nom_souhaite$, nom_feuille$
Dim wsTmp As Worksheet

   nom_souhaite = Range("C6").Value '<<<<<< remplacer
   nom_feuille = nom_souhaite '1er test avec nom souhaité

   While WsExists(nom_feuille) 'tant que la feuille nommée nom_feuille existe, on exécute ce qui suit :
      i = i + 1 'incrémentation
      nom_feuille = nom_souhaite & "(" & i & ")" 'nom_feuille = nom_souhaite & indice incrémenté pour nouveau test
   Wend

   Sheets("remplir").Copy After:=Sheets("remplir")
   ActiveSheet.Name = nom_feuille

'Worksheets("remplir").Activate

End Sub

Bonjour Cylfo,

Le problème que je rencontre est que lorsque je fais cette opération mes modules de la page source restes "accrochés" et se retrouve sur la nouvelle page copiée.

capture

J'ai donc besoin de 2 choses l'une, copier les données et le format de page ou effacer les modules contenue dans la page source.

Merci de votre support :)

Bonjour,

Ci-dessous une proposition de code que j'ai testé avec un jeu de données que j'ai fabriqué (pas de fichier joint au message ... donc risque que le jeu d'essai ne soit pas représentatif) comportant des polices différentes, des formats différents de cellules, une mise en forme conditionnelle, une hauteur de ligne de titre ... ça fonctionne.

Je te laisse tester sur tes données.

Sub ajoutfeuille()

'*********************************
'Module servant a créer une copie de la feuille remplir
'****************************
Dim nom_souhaite$, nom_feuille$
nom_souhaite = Range("C6").Value '<<<<<< remplacer
nom_feuille = nom_souhaite '1er test avec nom souhaité

While WsExists(nom_feuille) 'tant que la feuille nommée nom_feuille existe, on exécute ce qui suit :
    i = i + 1 'incrémentation
    nom_feuille = nom_souhaite & "(" & i & ")" 'nom_feuille = nom_souhaite & indice incrémenté pour nouveau test
Wend

Worksheets.Add After:=Worksheets("remplir")

With ActiveSheet
   .Name = nom_feuille
   Worksheets("remplir").Range("A1:H51").Copy
   Worksheets(nom_feuille).Paste Destination:=.Cells(1, 1)
   Worksheets(nom_feuille).Cells(1, 1).PasteSpecial Paste:=xlPasteColumnWidths
   ' Si besoin : Pour la hauteur des lignes, s'il n'y a que la ligne de titre voir ci-dessous, sinon si
   ' les hauteurs ne résultent pas de l'option de renvoi automatique à la ligne, il faudrait ajouter une boucle.
   Worksheets(nom_feuille).Rows(1).RowHeight = Worksheets("remplir").Rows(1).RowHeight

End With

'Worksheets("remplir").Activate

End Sub
Rechercher des sujets similaires à "format feuille lors que copie module"