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