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

Access Discussion :

comment fermer un fichier Excel depuis Access?


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut comment fermer un fichier Excel depuis Access?
    bonjour tout le monde!

    voilà mon petit problème , à partir d'access, je génère un fichier Excel et ensuite j'enregistre les données contenues sur cette feuille dans ma base de données.

    à la fin de ma commande d'enregistrement, je lui dis de fermer le fichier Excel avec la commmande suivante :

    le problème c'est qu'à chaque fois, je suis obligée de retourner sur Excel pour dire que je ne veux pas enregistrer les modifications , et seulement ensuite il me ferme mon fichier.

    ce que je voudrai savoir, c'est est-ce qu'il existe une commande qui me permettrait de dire automatiquement que je ne veux pas enregistrer?

    merci beaucoup d'avance
    bisous
    audrey

  2. #2
    ARO
    ARO est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 74
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Extrait de l'aide Excel

    Exemples
    Cet exemple montre comment fermer le classeur Book1.xls sans inviter l'utilisateur à enregistrer les modifications. Les modifications apportées à Book1.xls ne sont pas enregistrées.

    Application.DisplayAlerts = False
    Workbooks("BOOK1.XLS").Close
    Application.DisplayAlerts = True


  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    merci beaucoup !

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    coucou!!

    je viens d'essayer le code que tu m'as donné mais ça ne marche pas, il me demande toujours si je veux enregistrer

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ExcelApp.DisplayAlerts = False
        ExcelApp.Workbooks.Close
        ExcelApp.DisplayAlerts = True

    'excelapp' est mon application Excel ouverte. je ne sais pas trop ce qui ne fonctionne pas...

    merci
    bisous

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu devrais essayer ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test5442()
    Dim ExcelApp As Object
    Dim bOnSauveLeClasseur As Boolean
    '[....]
     
      ExcelApp.DisplayAlerts = False
      bOnSauveLeClasseur = True
    '[....]
     
      ExcelApp.ActiveWorkbook.Close bOnSauveLeClasseur
      Set ExcelApp = Nothing
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    je viens d'essayer ton code mais ça ne marche toujours pas, il me demande toujours si je veux enregistrer...

    merci quand même!
    si quelqu'un a d'autres idées...

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Comment ouvres-tu ton classeur ?
    N'y a t-il pas d'opérations qui génèrent un nouveau classeur.
    Bref, fais voir ton code...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    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
    50
    51
    52
    53
    54
    55
    56
    57
        '**********************************************************************************
        ' on s'intéresse enfin à la SYNTHESE GENERALE.
        ' on va parcourir toute la liste jusqu'à tomber sur la dernière ligne marquée par ##.
     
        ligne_pour_enregistrement = ligne_depart
     
        Do While ExcelApp.cells(ligne_pour_enregistrement, colonne_identifiant_domaine) <> marqueur_fin
     
            ligne_pour_enregistrement = ligne_pour_enregistrement + 1
     
        Loop
     
     
        ' on va d'abord trouver quel est le code qui a été coché.
        Call TrouveCode(ligne_pour_enregistrement, code)
     
     
        ' on sort donc on est sur la dernière ligne donc on va insérer le commentaire
        ' dans la table 'Synthèse_Globale'.
        Call EnregistreSyntheseGlobale(txtDate.Value, code, ExcelApp.cells(ligne_pour_enregistrement, colonne_libelles).Value, lstMachine.Value)
     
     
     
    '*******************************************************************************
     
        ' on met un message de confirmation.
        MsgBox ("L'enregistrement de l'évaluation a bien été effectué.")
     
        lstEquipe.Value = Null
        lstNom.Value = Null
        lstPrenom.Value = Null
        lstMachine.Value = Null
        txtDate.Value = Null
        ExcelApp.Quit
     
    Else
     
        'l'enregistrement a été annulé.
        MsgBox ("L'enregistrement de l'évaluation a été annulé.")
        lstEquipe.Value = Null
        lstNom.Value = Null
        lstPrenom.Value = Null
        lstMachine.Value = Null
        txtDate.Value = Null
        ExcelApp.DisplayAlerts = False
        ExcelApp.ActiveWorkbook.Close
        ExcelApp.DisplayAlerts = True
        ExcelApp.Quit
     
    End If
     
     
    enregistre_evaluation.Enabled = True
     
     
        ' Quitte la procédure.
        Exit Sub
    merci d'avance

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    voici pour l'ouverture du classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '***********************************************************************
     
            ' Crée une nouvelle application Excel.
            Set ExcelApp = CreateObject("Excel.Application")
            ExcelApp.Workbooks.Add
            ExcelApp.Visible = True

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Salut,

    Dans le code d'argyronet ça demande de sauvegarder le classeur alors que toi tu ne veux pas.

    En mettant à false la valeur de bOnSauveLeClasseur ça me semblerait plus logique, non : :

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    je viens d'essayer de mettre le booléen à false mais ca ne marche toujours pas rien à faire, il me demande toujours d'enregistrer...

    bisous

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    bizarre ça devrait marcher dans les deux cas...
    Peut-être avec cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExcelApp.ActiveWorkbook.Close SaveChanges:=False
    La dernière solution c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExcelApp.ActiveWorkbook.saved = true
    A mettre avant de fermer le classeur.
    Si la propriété saved du classeur est vraie il ne devrait pas demander de le sauvegarder.

    Sinon essaye d'afficher le nombre de classeur avant de fermer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox ExcelApp.Workbooks.count
    Pour vérifier qu'il n'y a bien qu'un seul classeur dans l'appli excel.

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    bonjour !!!

    ça ne marche toujours pas ...

    voilà où j'en suis dans le code parce que j'ai peur de m'être un peu embrouillée et d'avoir oublié des choses ou mis des choses au mauvais endroit...

    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
        '**********************************************************************************
        ' on s'intéresse enfin à la SYNTHESE GENERALE.
        ' on va parcourir toute la liste jusqu'à tomber sur la dernière ligne marquée par ##.
     
        ligne_pour_enregistrement = ligne_depart
     
        Do While ExcelApp.cells(ligne_pour_enregistrement, colonne_identifiant_domaine) <> marqueur_fin
     
            ligne_pour_enregistrement = ligne_pour_enregistrement + 1
     
        Loop
     
     
        ' on va d'abord trouver quel est le code qui a été coché.
        Call TrouveCode(ligne_pour_enregistrement, code)
     
     
        ' on sort donc on est sur la dernière ligne donc on va insérer le commentaire
        ' dans la table 'Synthèse_Globale'.
        Call EnregistreSyntheseGlobale(txtDate.Value, code, ExcelApp.cells(ligne_pour_enregistrement, colonne_libelles).Value, lstMachine.Value)
     
     
     
    '*******************************************************************************
     
        ' on met un message de confirmation.
        MsgBox ("L'enregistrement de l'évaluation a bien été effectué.")
     
        lstEquipe.Value = Null
        lstNom.Value = Null
        lstPrenom.Value = Null
        lstMachine.Value = Null
        txtDate.Value = Null
        ExcelApp.Quit
     
    Else
     
        'l'enregistrement a été annulé.
        MsgBox ("L'enregistrement de l'évaluation a été annulé.")
        lstEquipe.Value = Null
        lstNom.Value = Null
        lstPrenom.Value = Null
        lstMachine.Value = Null
        txtDate.Value = Null
        ExcelApp.DisplayAlerts = False
        ExcelApp.ActiveWorkbook.Saved = True
        ExcelApp.DisplayAlerts = True
        ExcelApp.Quit
     
    End If
     
     
    enregistre_evaluation.Enabled = True
     
     
        ' Quitte la procédure.
        Exit Sub
    j'ai essayé de mettre le code que tu m'as dit pour compter le nombre de classeurs mais ça n'a rien affiché... je l'avais mis juste au-dessus de excelapp.quit.

    j'espère que vous pourrez m'aider (et merci déjà pour votre aide )

    audrey

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Tu as enlevé la fermeture du classeur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ExcelApp.ActiveWorkbook.Saved = True
    ExcelApp.ActiveWorkbook.Close
    Le <saved = true> c'est juste pour faire croire à excel que le classeur à déjà été sauvegardé.
    Il faut quand même demander explicitement la fermeture du classeur sinon le process excel risque de rester ouvert.

    Mais est-ce que tu passes dans la partie "else"??
    Parce que cette partie devrait fonctionner mais avant le <else> tu as une fermeture de l'application aussi mais pas correcte, c'est pas celle-là qui s'exécute?

  15. #15
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    merci beaucoup !!!!

    ça y est ça marche!! t'avais raison, j'avais mis dans le "else" alors qu'il fallait pas et j'avais aussi oublié de fermer

    vraiment merci beaucoup pour ton aide

    audrey

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

Discussions similaires

  1. Comment fermer un fichier Excel avec Access
    Par zoom61 dans le forum VBA Access
    Réponses: 22
    Dernier message: 24/08/2017, 09h33
  2. [VBA] Mise en forme d'un fichier Excel depuis Access
    Par morgiane dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2007, 10h32
  3. [VBA Excel Débutant] Tri d'un fichier Excel depuis Access
    Par elgringo2007 dans le forum Access
    Réponses: 3
    Dernier message: 07/08/2006, 16h21
  4. Comment lancer un fichier Excel avec Access ??
    Par merlubreizh dans le forum Access
    Réponses: 5
    Dernier message: 12/09/2005, 14h20
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 11h47

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