Bonjour,

J'ai un workbook nommé PCA
Il y a une feuille de données et une feuille nommée "PCA Record Sheet"

Dans le haut de la feuille "PCA Record Sheet", il y a un combobox dans lequel le user peut sélectionner un enregistrement de la feuille de données, ça met à jour automatiquement certaines cellules du "PCA Record Sheet"
Ensuite, il y a un bouton "Export" qui doit copier le contenu de la feuille vers un nouveau fichier excel.


Voici mon code VBA
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
 
Sub ExportToNewFile()
    Dim sNewSheetName As String
 
    Sheets("PCA Record Sheet").Select
 
    sNewSheetName = Range("E10").Value & " (" & Range("K10").Value & ")"
 
    ActiveSheet.Copy Before:=Sheets("PCA Record Sheet")
 
    ActiveSheet.Shapes.Range(Array("cmbRecordList", "btnExportSheet")).Delete    
 
    ActiveSheet.Name = sNewSheetName
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    ActiveSheet.Move After:=Workbooks("NewFile.xlsx").Sheets(1)
    ActiveWorkbook.Save
End Sub
Assez simple non?
Exécuté séparément, chaque ligne fonctionne

Mais! Si je fais F5 sur la macro (ou click sur le bouton), la macro cesse de s'exécuter immédiatement après avoir exécuter cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.Copy Before:=Sheets("PCA Record Sheet")
Ensuite, je doit faire F8 sur la macro, donner une valeur à la variable sNewSheetName et déplacer le curseur jusqu'à la ligne suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.Shapes.Range(Array("cmbRecordList", "btnExportSheet")).Delete
Je fais F5 à ce point et le reste du code s'exécute correctement jusqu'à la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.Move After:=Workbooks("NewFile.xlsx").Sheets(1)
Encore là, après cette ligne, le code arrête et la ligne suivante n'est pas exécuté, toujours pas de message d'erreur, juste arrêté!

Quelqu'un comprends pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ActiveSheet.Copy Before:=Sheets("PCA Record Sheet")
Arrête l'exécution de mon code???

J'ai un poste windows XP et j'utilise Excel 2007...

Merci d'avance pour votre aide!