Bonjour cher ami développeur,

Je viens vers vous pour un problème relatif à excel je m'explique.
J'ai créé une macro me permettant de déplacer un onglet excel dans un autre classeur lorsque l'utilisateur clique sur un bouton.
Mon problème est que lors de l'activation de cette macro, il arrive qu'excel plante (on va dire une fois sur deux) et affiche le message

"excel a cessé de fonctionner". il cherche alors une solution puis me répare le fichier mais je souhaiterais que cela ne se produise plus et je ne sais pas du tout comment m'y prendre.

Pouvez vous m'éclairer ?
Si besoin voici le code que j'ai rédigé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub archivage()
Application.ScreenUpdating = False
Application.CutCopyMode = False
 
'si l'utilisateur confirme vouloir archiver l'affaire
    If MsgBox("Etes-vous certain de vouloir archiver cette affaire ?", vbYesNo, "Demande de confirmation") = vbYes Then
'on ouvre le fichier archive
Set archive = Application.Workbooks.Open("F:\Pôles études\Cellule MDP\LDR\test automatisation de la VA\archive DDB.xlsm")
'on vient déplacer l'onglet juste avant l'onglet compiler
ThisWorkbook.ActiveSheet.Move Before:=archive.Sheets("Compiler Va")
'on inscrit T dans la cellule G109 puis on remplace les données présentes par leur valeur (disparition des formules)
ActiveSheet.Cells(109, 7) = "T"
Range("A1:NO150").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
'on referme le fichier archive
archive.Close True 'Ferme en sauvant.
MsgBox ("Projet archivé")
    End If
 
 
Application.CutCopyMode = True
Application.ScreenUpdating = True
 
End Sub