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 :

Ferméture de Excel à partir de Access [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut Ferméture de Excel à partir de Access
    Bonjour,

    Je reprends la question de CRETGIL
    Vba excel workbook worksheet fermeture excel [Résolu]
    du 24/03/2015, 10h30 .

    J'ai le même problème et, les réponses données ne corrigent pas le problème chez moi

    Windows 8.1, Office 2010. Je suis partit de l'exemple de ="http://drq.developpez.com/vb/tutoriels/Excel/" de Sébastien Curutchet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    '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
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("Ma Feuille.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)
    Le fait de fermer la feuille, quitter Excel laisse Excel actif dans le processus arrière plan. Ce qui empêche le reste du programme (rouvrir un autre fichier Excel de se dérouler.

    On peut continuer en supprimant le processus à la main!

    Merci, de me donner une piste.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Oui la fermeture de Excel à partir d'Access et parfois problématique.

    Voici comment je procède et à date je n'ai pas eu de problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim appExcel As Object 'Excel.Application 'Application Excel
    Dim wbExcel As Object 'Excel.Workbook 'Classeur Excel
    Dim wsExcel As Object Excel.Worksheet 'Feuille Excel
     
    appexcel.visible=true 'Apparement quand Excel est caché cela marche moins bien. Peut malheureusement avoir un effet "stroboscope" assez fatiguant pour l'utilisateur.
     
    'Ici le code qui travaille sur ces objets
     
    'Ici le code pour la fin
    set wsExcel=nothing
    wbExcel.quit:set wbExcel=nothing
    set appExcel=nothing
    Le set ... = nothing force le compilateur à "libérer" l'objet.
    En théorie, il le fait de lui-même mais cela garanti qu'il va le faire MAINTENANT pas quand cela lui paraîtra le bon moment.

    Le fait d'utiliser des objets évite d'avoir une dépendance sur les librairies de Excel. C'est très important si ta BD est utilisée dans divers Offices. La librairie référencée est celle de l'office le plus récent donc si tu créés ta BD avec Office 2007, que tu l'ouvres avec Office 2010 tu te retrouves avec un référence à Excel 2010 et quand tu l'ouvres de nouveau avec Access 2007 tu as une erreur de référence ... pas cool.

    Malheureusement avec des Objects tu pers l'intellissense des objets Excel.

    Le fait de rendre Excel visible permet aussi de voir que Excel a planté.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut
    Bonjour et merci,

    Cela règle en partie le problème, mais effectivement, il m'avait semblé voir une des instance de Excel dans disparaître dans le processus arrière plan de temps en temps (de l'ordre de 1 à 2 heures après)

    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
    Sub testOuvreFermeXL()
    '*******************
     
        Dim appExcel As Object 'Excel.Application 'Application Excel
        Dim wbExcel As Object 'Excel.Workbook 'Classeur Excel
        Dim wsExcel As Object 'Excel.Worksheet 'Feuille Excel
     
        Set appExcel = CreateObject("Excel.Application")
        appExcel.Visible = True 'Apparement quand Excel est caché cela marche moins bien. Peut malheureusement avoir un effet "stroboscope" assez fatiguant pour l'utilisateur.
     
        'Ouverture d'un fichier Excel
        Set wbExcel = appExcel.Workbooks.Open("C:\Users\JFD\Downloads\LotsExcel.xls")
        Set wsExcel = wbExcel.ActiveSheet
     
        MsgBox wsExcel.Cells(1, 1)
     
        'Ici le code pour la fin
        Set wsExcel = Nothing
        'wbExcel.Quit
        appExcel.Quit
        Set wbExcel = Nothing
        Set appExcel = Nothing
     
     
    End Sub
    Maintenant avec le petit bout de code test ci dessus (j'ai ajouté " ' " après wsExcel As Object .

    Le comportement est le suivant :
    • wbExcel.Quit provoque l'erreur 438 (procédure ou méthode non gérée par cet objet)
    • J'ai ajouté appExcel.Quit
    • la feuille Excel se ferme en fin de sub
    • Un classeur Excel vide reste actif, mais ne gêne plus
    • il n'y plus d'instance Excel dans le processus arrière plan


    Bref c'est complik l'informatik!!!

    Mais déjà cela me permet de travailler.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Désolé

    L'instruction devait être :

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut
    Merci,

    Je ferme la discussion

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

Discussions similaires

  1. Lancement d'un fichier Excel à partir d'Access
    Par Golork dans le forum Access
    Réponses: 5
    Dernier message: 18/03/2010, 11h45
  2. insérer une nouvelle feuille Excel à partir d' Access
    Par Sebastien_INR59 dans le forum Access
    Réponses: 2
    Dernier message: 06/08/2006, 18h47
  3. Lancement macro excel à partir d'access
    Par frevale dans le forum Access
    Réponses: 3
    Dernier message: 11/04/2006, 13h11
  4. Réponses: 1
    Dernier message: 09/12/2005, 19h12
  5. Piloter excel à partir d'access
    Par Celia1303 dans le forum Access
    Réponses: 6
    Dernier message: 14/11/2005, 16h17

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