VBA copier une feuille et coller dans un nouveau classeur en valeur
Mathieu
-
Mathieu -
Mathieu -
Bonjour,
Je souhaite créer une macro qui permet de copier la 44ème feuille d'un classeur et la coller en valeur dans un nouveau classeur.
Lorsque je lance la macro ci-dessous, j'ai une erreur d’exécution '1004' "Cette opération requiert que les cellules fusionnées soient de taille identique" sur "xlPasteValues".
Je ne comprends pas pourquoi.
Je vous remercie par avance pour votre aide.
Mathieu.
Je souhaite créer une macro qui permet de copier la 44ème feuille d'un classeur et la coller en valeur dans un nouveau classeur.
Lorsque je lance la macro ci-dessous, j'ai une erreur d’exécution '1004' "Cette opération requiert que les cellules fusionnées soient de taille identique" sur "xlPasteValues".
Sub MAPA()
Dim feuille, nom, Export
Set feuille = ActiveWorkbook.Sheets(44)
nom = "DQE_MAPA_Terrassement" & ".xlsx"
Application.Workbooks.Add
Export = ActiveWorkbook.Name
feuille.Cells.Copy
With Workbooks(Export).Sheets(1).Cells
Selection.PasteSpecial Paste:=xlPasteAll
Selection.PasteSpecial Paste:=xlPasteValues
End With
Workbooks(Export).SaveAs Range("DQE_MAPA_Terrassement.xlsx")
Application.CutCopyMode = False
End Sub
Je ne comprends pas pourquoi.
Je vous remercie par avance pour votre aide.
Mathieu.
A voir également:
- Exporter une feuille excel dans un nouveau classeur vba
- Comment copier une vidéo youtube - Guide
- Dessin sms copier coller zizi ✓ - Forum Réseaux sociaux
- Feuille de score belote excel - Forum Excel
- Super copier - Télécharger - Gestion de fichiers
- Bruler feuille de laurier - Guide
1 réponse
Bonjour,
Comme ça :
EDIT : Et si tu veux aussi les formats :
Comme ça :
Option Explicit
Sub MAPA()
Dim c As Workbook
Dim f As Worksheet
Dim r As Range
Dim t As Variant
Dim nom As String
Set f = ActiveWorkbook.Worksheets(44)
Set c = Application.Workbooks.Add(xlWBATWorksheet)
Set r = c.Worksheets(1).Range("A1")
nom = ThisWorkbook.Path & "\DQE_MAPA_Terrassement.xlsx"
t = f.UsedRange.Value
r.Resize(UBound(t, 1), UBound(t, 2)).Value = t
c.SaveAs nom
c.Close
End Sub
EDIT : Et si tu veux aussi les formats :
Option Explicit
Sub MAPA()
Dim c As Workbook
Dim f As Worksheet
Dim r As Range
Dim t As Variant
Dim nom As String
Set f = ActiveWorkbook.Worksheets(44)
Set c = Application.Workbooks.Add(xlWBATWorksheet)
Set r = c.Worksheets(1).Range("A1")
nom = ThisWorkbook.Path & "\DQE_MAPA_Terrassement.xlsx"
f.UsedRange.Copy r
t = f.UsedRange.Value
r.Resize(UBound(t, 1), UBound(t, 2)).Value = t
c.SaveAs nom
c.Close
End Sub
Cordialement.