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 :

Fichier Excel sur serveur HTTP


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Points : 26
    Points
    26
    Par défaut Fichier Excel sur serveur HTTP
    Bonjour a tous,

    J'ai développé une application ACCESS 2016.

    Je souhaite récupérer des données dans un fichier EXCEL (format xlsx uniquement pas d'autre format possible) qui est sur une adresse http et qui est mis à jour au fil de l'eau.

    Il n'est pas possible de faire un lien entre un fichier xlsx et une table dans access et je n'ai pas forcément trouvé la meilleure solution pour cela.

    Ma solution,

    Sur timer j'ouvre le fichier excel sur le serveur http puis je l'enregistre sous vers ma nouvelle destination.
    je récupère ensuite les données depuis ce fichier destination (cela fonctionne correctement)

    je n'ai pas résolu deux problèmes:

    - Supprimer le message pour écraser le fichier destination existant.
    - Des instances Excel restent ouvertes (constaté dans le gestionnaire des tâches) malgré avoir libéré les objets après chaque copie du fichier excel.

    Si quelqu'un peut m'aider..

    merci par avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Bonjour.


    - Supprimer le message pour écraser le fichier destination existant.
    Ca c'est une question Excel ou tu peux supprimer le fichier avec Access avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim CheminNomFichier as string
    'Ici du code pour assigner CheminNomFicher
     
    if dir(CheminNomFichier)<>"" then
       kill CheminNomFichier 
    end if
    - Des instances Excel restent ouvertes (constaté dans le gestionnaire des tâches) malgré avoir libéré les objets après chaque copie du fichier excel.
    J'ai remaque que pour que la liberation se fasse toujours, il faut que l'objet application Excel soit visible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objExcel.Visible=True: objExcel.Quit: set objExcel=nothing
    Je n'en vois pas la raison mais depuis des annees que je fais cela je n'ai pas eu de probleme.

    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    merci Marot-R

    concernant le premier message, il ne s'agit pas d'excel.

    c'est l'utilisation de la fonction 'saveas'.

    Lorsqu'on enregistre pour la deuxième fois un fichier avec le même nom, un message s'affiche qui demande si l'on veux écraser le fichier existant. C'est ce message que je veux supprimer puisque ma fonction de copie du fichier excel doit être masquée pour l'utilisateur, et qu'il bloque la suite de ma fonction.

    Pour la deuxième question je vais tester.. merci

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Bonjour.

    Je pense que le saveas est fait par l'application Excel que tu instancies pour manipuler ton fichier donc c'est un message d'Excel.
    Il faut donner a Excel l'ordre de supprimer ce message d'alerte (et je ne me souviens plus de l'instruction).

    Si ce n'est pas cela alors la suppression du fichier par Access devrait suffire.

    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
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    bonjour marot_r et a.pujol,
    Citation Envoyé par marot_r
    Il faut donner a Excel l'ordre de supprimer ce message d'alerte (et je ne me souviens plus de l'instruction)
    il s'agit de l'instruction: XlObj.DisplayAlerts = False
    XlObj étant l'instance d'Excel créée au préalable
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Merci Tee_grandsbois.

    Et ne pas oublier de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XlObj.DisplayAlerts = True
    juste apres pour retablir les alertes.

    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.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    juste apres pour retablir les alerte
    pas nécessairement, cela concerne l'instance, ce n'est pas une option générale de l'application.
    Bonne soirée
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Bonjour tee_grandbois et merci de la precision.

    Perso, meme dans une instances, j'aime avoir mes alertes actives autant que possible.

    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.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    salut marot_r
    Perso, meme dans une instances, j'aime avoir mes alertes actives autant que possible
    justement, elle sont actives par défaut, donc pas la peine de les activer pour chaque instance. En général, on utilise plutôt la commande pour ne pas les avoir.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Oui, mais une fois que tu les as desactivees pour une instance, elles restent desactivees, non ?

    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.

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    oui c'est vrai, tant qu'elle n'est pas fermée mais puisque elle est activée quand tu l'ouvres, pourquoi la désactiver, sauf si c'est ce que tu souhaites ?

    La solution de désactivation était pour a.pujol, toi tu n'en as pas besoin puisque tu préfères qu'elle soit active ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Merci à tous pour les réponses.

    J'ai testé.

    1 / Je n'ai plus le message pour écraser le fichier existant - c'est OK

    2/ J'ai toujours après l'enregistrement du fichier l'instance excel qui reste ouverte dans les processus d'arrière plan.
    ne résout pas le problème.

    Si quelqu'un a une solution merci par avance

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Bonjour.

    As-tu bien la sequence d'instructions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objExcel.Visible=True: objExcel.Quit: set objExcel=nothing
    L'as-tu execute pas a pas pour valider ?

    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.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    En cherchant sur des discussion, j'ai trouvé cette solution qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("taskkill /F /IM Excel.exe")
    L'instance d'excel se ferme bien. Ce point est donc résolu

    Par contre pour le point 1 copie de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oApp.DisplayAlerts = False
    supprime le message pour écraser ou pas le fichier existant.
    Cependant : une fenêtre avec le message ' Enregistrement en cours' avec bouton annuler s'affiche.

    J'aurais souhaité que la copie du fichier excel soit transparente pour l'utilisateur et surtout qu'il ne puisse pas annuler l'opération la suite de ma fonction dépend de cette copie.

    Ce message peut-il être supprimé?

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    bizarre ce message ... est-ce un gros fichier ?
    dans ce cas, essaie avec App.visible = False
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("taskkill /F /IM Excel.exe")
    Verifie que cela ne ferme pas toutes les instances d'Excel ouvertes.
    Si ton utilisateur travaille dans un autre Excel, il risque de ne pas t'aimer.

    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.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 746
    Points : 14 771
    Points
    14 771
    Par défaut
    Citation Envoyé par a.pujol Voir le message
    Merci à tous pour les réponses.

    J'ai testé.

    1 / Je n'ai plus le message pour écraser le fichier existant - c'est OK

    2/ J'ai toujours après l'enregistrement du fichier l'instance excel qui reste ouverte dans les processus d'arrière plan.
    ne résout pas le problème.

    Si quelqu'un a une solution merci par avance
    as-tu bien lu ce que t'a écrit marot_r ? c'est cette instruction : objExcel.Quit qui ferme l'instance
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("taskkill /F /IM Excel.exe")
    Cette instruction ferme effectivement toutes les instances excel qui sont ouvertes. Pas génial...

    Par contre j'ai fait je pense tous les tests possibles, oui j'ai bien utilisé l'instruction objExcel.Quit mais l'instance excel reste ouverte dans les processus en arrière plan.

    Je ne trouve pas la solution...

    Merci a vous

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2018, 10h07
  2. Réponses: 1
    Dernier message: 26/06/2009, 15h50
  3. Fichier ini stocké sur serveur http
    Par nicolas.pissard dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/05/2008, 11h12
  4. Ouverture d'un fichier excel sur un serveur
    Par Drost dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/11/2007, 14h34
  5. [Upload] transférer un fichier excel sur le serveur
    Par essono dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2007, 19h35

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