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 :

Code qui ne fonctionne qu'une fois sur 2!


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Code qui ne fonctionne qu'une fois sur 2!
    Bonjour à tous,
    Nouvelle sur le forum, j'espère que je ne ferais pas d'erreur de langage!

    Je vous explique :
    - j'ai une requête qui me donne des références avec besoins et ressources
    - Extraction vers excel "Données globales"
    - Copie vers classeur "Mise en page"
    - Copie de ce classeur "Mise en page" dans un nouveau classeur avec rupture des liens

    Voici mon code :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    '//////////////////////////////////////////////
    Private Sub Commande1_DblClick(Cancel As Integer)
     
    DoCmd.RunMacro "Extraction vers excel"      'Lancement d'une Macro Access
    Call gestion_excel
    Call copienew
     
    End Sub
     
    '//////////////////////////////////////////////
    Private Sub gestion_excel()
     
    'Gestion des fichiers Excel
     
    'Déclaration des variables
        Dim appExcel As Excel.Application 'Application Excel
        Dim wbExcel As Excel.Workbook 'Classeur Excel
        Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application Excel
        Set appExcel = CreateObject("Excel.Application")
     
    'Ouverture des fichiers Excel
        Set wbExcel = appExcel.Workbooks.Open("d:\data\Gestion de contrat\données globales")
        Set wbExcel = appExcel.Workbooks.Open("d:\data\Gestion de contrat\détail")
        Set wbExcel = appExcel.Workbooks.Open("d:\data\Gestion de contrat\Mise en page")
     
    'wsExcel correspond à la première feuille du fichier
        Set wsExcel = wbExcel.Worksheets(1)
     
    'Rendre Excel visible
        appExcel.Visible = True
     
    End Sub
     
    '//////////////////////////////////////////////
    Private Sub copienew()
     
    'Copier Mise en page dans new classeur
        Worksheets("Mise en page").Copy
     
    'Supprimer les liens
        ActiveWorkbook.BreakLink Name:="D:\data\Gestion de contrat\Détail.XLS", Type _
            :=xlExcelLinks
        ActiveWorkbook.BreakLink Name:= _
            "D:\data\Gestion de contrat\Données globales.xls", Type:=xlExcelLinks
     
    End Sub
    Mon soucis est que le code ne fonctionne qu'une fois sur 2!!
    En somme je lance 1 fois, ça marche, la seconde => Erreur 1004 - La méthode Worksheets (ou sheets j'ai essayé) a échoué.
    Si je fais Fin, le code fonctionne la fois suivante.
    Si je fais débogage, fonctionne pas la fois suivante.

    Par avance merci pour votre aide!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Bonjour,
    le plus rapide serait sans doute de mettre un "End" à la fin de ta fonction principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande1_DblClick(Cancel As Integer)
     
    DoCmd.RunMacro "Extraction vers excel"      'Lancement d'une Macro Access
    Call gestion_excel
    Call copienew
    End
    End Sub

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci!!
    Tout simple tout bête, mais super efficace!
    Moi qui chercher un code hyper compliqué!!
    Merci beaucoup Neupont !!

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

Discussions similaires

  1. [AC-2007] After Insert qui fonctionne mal une fois sur deux
    Par DamKre dans le forum IHM
    Réponses: 4
    Dernier message: 27/12/2011, 10h29
  2. Fermeture d'un formulaire : Ne fonctionne qu'une fois sur deux
    Par hellmaster78 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/04/2008, 11h35
  3. On Error GoTo qui ne fonctionne qu'une fois
    Par bernard0828 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2007, 07h39
  4. bouton submit qui ne fonctionne qu'une fois
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2007, 08h19
  5. [AJAX] Méthode sous Ajax qui ne fonctionne qu'une fois?
    Par patrice419 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2007, 13h19

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