Mon code VBA arrête après Worksheet.copy
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:
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:
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:
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:
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:
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!
:)