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

VB 6 et antérieur Discussion :

[VB6] Fermer proprement excel


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut [VB6] Fermer proprement excel
    Bonsoir,

    Il se trouve que dans mon application j'exporte le contenu d'un recordset dans une feuille excel. Ca marche impecc, le seul hic c'est lors de la fermeture de l'application excel.
    Dans mon application après l'exportation je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel.Visible = True
    pour afficher l'application, pour permettre ainsi à l'utilisateur de voir le résultat. Lorsqu'on quitte excel, l'application se ferme visiblement bien, mais dans la liste des processus il reste un "EXCEL.EXE". Et ce processus est embêtant car il fait merder toute nouvelle importation sauf si l'on quitte mon application et qu'on la relance.

    Comment faire pour quitter proprement Excel une fois qu'on l'a affiché?
    Merci pour votre aide.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    sans voir tout ton code cela va être difficile est tu sur de ne pas ouvrir plusieur instance d'excel?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut
    En fait la structure de mon code est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'Déclaration des variables
    Dim appExcel As Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim wsExcel As Excel.Worksheet
     
    Set appExcel = CreateObject("Excel.Application")
    appExcel.Workbooks.open("C:/MonDossier/Fichier.xls")
     
    Set wbExcel = appExcel.ActiveWorkbook
    Set wsExcel = wbExcel.ActiveSheet
     
    <ICI JE PROCEDE A L'EXPORTATION DU RECORDSET>
     
    appExcel.visible  = true

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    à priori ton code est correct.. mais le probléme vient peu être de la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <ICI JE PROCEDE A L'EXPORTATION DU RECORDSET>
    de plus tu pourrai préciser le contexte de ton appli... [VB6]...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut
    LE code de mon exportation est :
    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
     
       row = 6
       col = 2
     
        Données.Recordset.MoveFirst
     
        While Not Données.Recordset.EOF()
           While col < 73
               wsExcel.Cells(row, col).Select
               AppExcel.Selection.Insert Shift:=xlDown
               AppExcel.ActiveCell = Données.Recordset.Fields(col - 2)
               With AppExcel.ActiveCell.Borders
                         .LineStyle = xlContinuous
                         .Weight = xlThin
               End With
               col = col + 1
           Wend
           row = row + 1
           col = 2
         Données.Recordset.MoveNext
         Wend
    Ya un problème?

  6. #6
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Si l'objet appExcel n'est pas détruit, il va te rester une instance d'excel ouverte

    rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    appExcel.visible  = true
    Set appExcel = Nothing
    a moins que tu ne te serves ensuite encore de cet objet, mais dans tous les cas, il faudra le détruire avant de quitter ton prog

Discussions similaires

  1. Comment fermer proprement une instance d'Excel ouvert avec VB ?
    Par Teddy7 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2012, 16h23
  2. [VB6] Fermer proprement des feuilles Excel
    Par BermudaIonique dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 21/04/2006, 16h05
  3. [VB6][Tendance d'Excel] Calcul des constantes de l'equation
    Par ludotek dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/08/2005, 14h41
  4. [wxPython][wxFrame]Comment fermer proprement une frame ?
    Par Screameur dans le forum wxPython
    Réponses: 4
    Dernier message: 12/05/2005, 19h49
  5. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32

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