IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mon code VBA arrête après Worksheet.copy [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 21
    Points
    21
    Par défaut 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 : 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!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut Rank

    Essaye plutôt ceci
    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
    Sub ExportToNewFile()
        Dim sNewSheetName As String
        ' Avec la feuille
        With Sheets("PCA Record Sheet")
          ' Récupérer les éléments pour le nouveau nom
          sNewSheetName = Range("E10").Value & " (" & Range("K10").Value & ")"
          ' Copier la feuille dans un nouveau classeur
          .Copy
        End With
        'ActiveSheet.Shapes.Range(Array("cmbRecordList", "btnExportSheet")).Delete
        ActiveSheet.Name = sNewSheetName
        Cells.Copy
        Cells(1, 1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        ActiveWorkbook.SaveAs "NewFile.xlsx"
    End Sub
    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    Euh, apparament, ça prennais un reboot... ??????????????

    Merci Bruno, j'regarde ça quand même!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Controle de mon code vba
    Par Commandeur dans le forum IHM
    Réponses: 3
    Dernier message: 17/12/2008, 14h33
  2. Correction de mon code vba svp
    Par njinkeu.mbakob dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/04/2008, 12h21
  3. [debutant] comment transposer mon code vba excel en access
    Par eclipse012 dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/02/2008, 08h23
  4. Comment verouiller mon code vba?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/06/2007, 19h06
  5. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo