Sub Exporter()
'
' Exporter Macro
'
'
Dim PlageAExporter As Range
Dim wkDestination As Workbook
'Le calcul de la feuille ne sera pas lancé donc son évènement Calculate non plus
Application.Calculation = xlCalculationManual
'Initialisation de la variable range à exporter (calendrier)
Set PlageAExporter = ThisWorkbook.Sheets("Cal-couleur").Range("calendrier")
' création d'un nouveau classeur (il devient le classeur actif
Set wkDestination = Workbooks.Add()
' copier la plage à exporter
PlageAExporter.Copy
'Travailler sur la feuille 1 du classeur destination, cellule B2
With wkDestination.Sheets(1).Range("B2")
'collage spécial nécessaire
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.DisplayGridlines = False 'ne pas afficher quadrillage
End With
' IMPORTANT
'Il faut réactiver ce classeur pour que l'évènement Calculate ne provoque pas d'erreur
ThisWorkbook.Activate
'On remet le calcul en automatique
Application.Calculation = xlCalculationAutomatic
End Sub