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

VBA Access Discussion :

Problème avec Automation vers Excel [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Problème avec Automation vers Excel
    Bonjour à tous,

    Voici mon code qui n'est qu'un exemple simplifié pour montrer le problème que je rencontre. J'ai détaillé dans le code la partie qui pose problème.

    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
    50
    51
    Option Compare Database
     
    Function Export_Etat_E_TEST()
     
        'La référence 'Microsoft Excel 12.0 Object Library' doit être activée
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
     
        'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "test" 'renommer la feuille
     
     
     
     
        '*********    LE PROBLEME SE SITUE DANS CETTE PARTIE  ******************
     
        '1ère version qui pose problème :
        'bug au bout de la 2ème fois, car Excel reste toujours actif dans les processus
        '(cf. gestionnaire des tâches)
        'xlSheet.Range(Cells(2, 2), Cells(8, 8)).Value = "coucou" 'ligne à dé-commenter pour voir le bug
     
        '2ème version qui marche :
        xlSheet.Range("A2:H8").Value = "coucou" 'marche tout le temps
     
     
        '************************************************************
     
     
     
        'enregistrement du fichier
        xlBook.SaveAs CurrentProject.Path & "\bug.xlsx"
     
        'Message de fin
        MsgBox "Fichier Excel créé avec succès", vbInformation
     
     
        'fermeture et libération des objets
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
     
    End Function

    En fait, quand on utilise cette version de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Range(Cells(2, 2), Cells(8, 8)).Value = "coucou"
    on remarque dans les processus du gestionnaire des tâches, que Excel ne se ferme pas !!!! Le processus reste actif malgré la libération des variables en fin de code... c'est le fait d'utiliser "Cells" qui pose problème...

    Alors que ça ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Range("A2:H8").Value = "coucou" 'marche tout le temps


    Quelqu'un peut-il m'aider ? C'est très embêttant, car lorsque l'on relance le code une 2ème fois ça plante, comme le processus n'a pas pu se fermer.



    Par avance merci.


    Dams'

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Bonjour,

    Sujet déja traité un peu plus bas.

    Il est possible que quand tu utilises Cells sans la préfixer par l'objet xlSheet, Access recrée automatiquement un objet WorkSheet.

    Cordialement

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    mais j'ai le préfixe - regarde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Range(Cells(2, 2), Cells(8, 8)).Value = "coucou"

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Erreur tu as préfixé une partie seulement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Range(xlSheet.Cells(2, 2), xlSheet.Cells(8, 8)).Value = "coucou"
    Cells est aussi une fonction qui s'applique sur un objet excel (Worksheet)

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    ah c'est vicieux ça !!
    mais c'est bon ça marche
    merci

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

Discussions similaires

  1. Problème avec automation Excel.
    Par laurent_diep dans le forum C#
    Réponses: 0
    Dernier message: 28/01/2010, 11h42
  2. Réponses: 1
    Dernier message: 01/08/2008, 14h01
  3. Problème avec StingTokenizer vers tableau de String
    Par nicofromChina dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 06/10/2006, 11h22
  4. Débutant: Problème pour exporter vers excel
    Par jrogron dans le forum Access
    Réponses: 10
    Dernier message: 19/08/2006, 14h42
  5. [VB6] Problème Export mshflexgrid vers Excel
    Par dubidon dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/02/2006, 13h28

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