Faire un copier/coller d'une selection avec mise en forme

Bonjours,

Lors de la création d'une macro je voudrait supprimer une feuille, en recréé un avec le meme nom puis coller une mise en forme depuis un feuille "FeuillePatron" cependant lors de l'execution de mon code qui a été fait via les formules fournie par l'enregistreur de macro et quelques bidoullages j'oobtien l'erreur "La méthode PasteSpecial de la classe Range a échoué " mais je ne voie pas comment résoudre cette erreur, ci-dessous une partie de mon code :

 
        Sheets("Résultat").Select
        ActiveWindow.SelectedSheets.Delete
        Sheets.Add After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Select
        Sheets(Sheets.Count).Name = "Résultat"
        Rows("1:1").Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste

Merci d'avance pour votre aide.

Arthur.

Hi,

Quelques lignes inutiles.

Dim shRes as worksheet
    With thisworkbook
        .Sheets("Résultat").Delete
        Set shRes = .Sheets.Add(After:=Sheets(Sheets.Count))
        shRes.name = "Résultat"
        .sheets("FeuillePatron").Rows("1:1").Copy
        shRes.range("A1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    end with

Le problème sur mes lignes sélectionner est que tu tente de coller sans avoir copier quoi que ce soit. J'ai corrigé en partant du principe qu'on copie la "FeuillePatron".

Kit a écrit :

Hi,

Quelques lignes inutiles.

Dim shRes as worksheet
    With thisworkbook
        .Sheets("Résultat").Delete
        Set shRes = .Sheets.Add(After:=Sheets(Sheets.Count))
        shRes.name = "Résultat"
        .sheets("FeuillePatron").Rows("1:1").Copy
        shRes.range("A1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    end with

Le problème sur mes lignes sélectionner est que tu tente de coller sans avoir copier quoi que ce soit. J'ai corrigé en partant du principe qu'on copie la "FeuillePatron".

Merci Kit pour ta réponse,

je viens d'essayer ton code mais cela me donne l'erreur 3001 : Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres.

Dans ta réponse tu dit qu'il me manquait la sélection avant le copier coller mais dans ton code ou se situe la copier ?

Arthur

EDIT: j'ai trouvé ou tu copy, l'erreur afficher vient de la suite de mon programme mais lors de l'execution des ton bout de code cela copy que la mise en forme mais pas les valeurs avec est-ce normal ?

EDIT : cela fonctionne avec le code

    With ThisWorkbook
        .Sheets("Résultat").Delete
        Set shRes = .Sheets.Add(After:=Sheets(Sheets.Count))
        shRes.Name = "Résultat"
        .Sheets("FeuillePatron").Rows("1:1").Copy
        shRes.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    ActiveSheet.Paste

Tu peux remplacer la dernière ligne par un shres.range("A1").pastespecial paste:=xlvalues si tu ne veux copier que les valeurs.

Merci pour la réponse mais le principe de la macro était de copier les valeurs ET la mise en forme ^^'

Dans tout les cas merci pour ton aide

Arthur

Rechercher des sujets similaires à "copier coller selection mise forme"