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 :

fermer un processus Excel


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut fermer un processus Excel
    Bonjour à tous!

    Dans mon code (ci joint : VB ACCESS), j'instancie Excel, j'effectue un certains nombre de traitement sur le classeur, puis je l'enregistre et le ferme. toutefois, le processus Ecxel.exe ne se ferme pas totalement.

    Est-ce que quelqu'un aurait une idée d'où ça peut venir???

    Merci d'avance!

    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
    set DATA = Application.CurrentDb
     
    'MEF feuille/onglet "Contrôle des écritures"
    Set xlappl = New Excel.Application
        xlappl.Visible = True
        xlappl.ScreenUpdating = True
        xlappl.UserControl = True
     
        Set xlClasseur = xlappl.Workbooks.Add
        xlClasseur.Sheets(1).Name = "Vérif écritures générées"
        Set xlFeuil = xlClasseur.Sheets(1)
     
        xlappl.ScreenUpdating = False
     
    With xlFeuil
     
    (traitements dont l'insertion de résultats de requêtes ACCESS effectuées dans le traitement)
    ....
    ...
    ...
     
     End With
     
    Set DATA = Nothing
     
    xlClasseur.Sheets(2).Delete
    xlClasseur.Sheets(2).Delete
     
    xlClasseur.SaveAs FileName:=STK_RESTIT_TMR, ReadOnlyRecommended:=False, Local:=True
    'xlClasseur.Close savechanges:=False
     
    'Workbooks.Close
    xlappl.Quit
    'Excel.Application.Quit
     
    Set xlFeuil = Nothing
    Set xlClasseur = Nothing
    Set xlappl = Nothing

  2. #2
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,

    pourquoi ne mets tu pas ton à la fin ?
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Je l'avais mis à la fin au début mais ca ne change rien!

    Je ne comprends pas, j'ai l'impression que toutes les classes sont fermées, mais un processus subsite encore...
    J'ai essayer plusieurs façons de fermer le classeur mais rien n'y fait!
    C'est un grand mystère pour moi....
    alors si vous aviez une réponse, ca me ferait beaucoup avancer!

  4. #4
    Membre actif Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Points : 288
    Points
    288
    Par défaut
    j'ai eu le même problème sur une de mes applis d'export d'excel, mon erreur venait du fait que j'enregistrais en réalité 2 fois ma feuille Excel, si mes souvenirs sont bons...
    je te conseille donc de bien vérifier que tu fermes tous tes enregistrements...
    cordialement
    schwarzy2
    Feel good, feel geek

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    merci de tenter de m'aider, la gestion des objets application sous ACCESS n'est chose très évidente pour moi!

    Voici un bout de code simple pour lequel le processus excel ne se ferme pas à la fin du traitemant.

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Set xlappl = New Excel.Application
    Set xlClasseur = xlappl.Workbooks.Open(FileName:=Nom_Fichier, ReadOnly:=False)
     
    Set xlFeuil = xlClasseur.Sheets("Cohérence des données")
    xlFeuil.Activate
     
       'Call MEF_TAB("A1:B5", "A1:B1")
     
       xlFeuil.Range("A1:B5").Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
     
        xlFeuil.Range("A1:B1").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
     
       xlClasseur.Close savechanges:=True
     
    Set xlFeuil = Nothing
    Set xlClasseur = Nothing
     
    xlappl.Quit
    Set xlappl = Nothing
     
     
    End Sub
    je suis débutante mais j'ai l'impression que le problème vient de l'utilisation des objet "Range" plutôt que "cells". Enfin dès que je j'interviens dans mon classeur en utilisant les objets "Range", le processus ne se ferme pas, alors qu'il se ferme en utilisant des objets "cells".... le problème vient-il de là?

    Je souhaiterais simplement faire une mise en page une feuille excel. cela me parait plus compliqué en utilisant les objets "cells".

    Quelqu'un aurait-il une sugestion de programme? une idée pour contourner ce problème?

    Merci!

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 592
    Points
    24 592
    Par défaut
    bonjour,

    Juste 2 suggestions :
    à l'ouverture de l'objet EXCEL

    mettre Excel en invisible.
    desactiver le recalcul automatique.

    remettre ces 2 options à la fermeture.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup ça marche.
    En fait il fallait juste remettre visible l'application avant fermeture.

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

Discussions similaires

  1. fermer le processus EXCEL.EXE
    Par bakman dans le forum VBScript
    Réponses: 3
    Dernier message: 26/11/2009, 13h43
  2. [AC-2003] Fermer un processus Excel
    Par cortek's dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/09/2009, 10h27
  3. Fermer le processus du dernier fichier Excel ouvert
    Par azertix dans le forum VBA Access
    Réponses: 12
    Dernier message: 27/06/2008, 15h34
  4. comment fermer le processus excel sous iis
    Par dietrich dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 16/01/2007, 14h32

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