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

Macros et VBA Excel Discussion :

Ouvrir Access depuis Excel


Sujet :

Macros et VBA Excel

  1. #21
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Citation Envoyé par Tytelle Voir le message
    Je reformule ce que je voudrais faire.
    Je voudrais ouvrir un formulaire access via un bouton qui se trouve sur un classeur excel.
    Avec ce formulaire ouvert, j'ajoute des info sur mes données de ma BDD, et un dernier clique sur mon formulaire exporte mes données (et résultats de requetes) vers une fichier excel et ferme le formulaire.
    Il y aurais ensuite un refresh des TCD en fonction des données exportées dans mon excel.
    Voilà
    relis stp ton premier post, tu verras une grosse différence, entre ouvrir une bdd acces et un formulaire acces ce n'est pas la même chose. finalement la question est : que cherches tu à faire (dans le détail), un formulaire excel peut il être suffisant ? (je pense que tu veuilles alimenter ta base acces avec excel mais je n'en suis pas certain)

  2. #22
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    J'ai appris au fur et à mesure de notre discussion que la BDD et les formulaires sont deux choses différentes.

    J'ai fait des tables et des requetes sur access en fonction d'un fichier. Ca me parait difficile de tout basculer sur excel. Le fichier qui a les données sur lesquelles je travaille comporte plus de 3000 lignes, ça fait un peu lourd pour faire des requêtes sur excel, non?
    Voilà pourquoi je fait des liens entre excel et access

    Bon comment on fait?

  3. #23
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je pense que ce qui gêne la plupart d'entre nous ici est que ton approche n'est pas vraiment logique en terme de programmation et d'interaction entre tes programmes.
    Je comprends bien que tu essaies de coder ce que tu fais manuellement pour le moment, c'est à dire ouvrir ton Access, remplir ton formulaire, copier une table de ta base et la mettre en forme dans Excel.
    Ce n'est pas très "propre" comme approche on va dire. C'est sans doute possible (quoique, détecter dans le code Excel que tu as refermé ton formulaire Access va être assez galère) mais à mon avis, il vaut mieux raisonner autrement.
    Si ton "application" finale est une feuille Excel, il vaut mieux ne se servir d'Access que comme une base de données (ça aurait aussi bien pu être une feuille Excel, un fichier texte, un fichier xml, une base SQLite, SQLServer...) et reproduire ton formulaire directement dans Excel. Ce sera un peu plus compliqué car il faudra gérer l'interaction avec la base, mais au moins tout le code sera dans une seule application et évitera bien des soucis.
    Une autre solution est d'utiliser Access comme application principale. Tu peux ainsi générer ton formulaire facilement et tu peux très bien faire une procédure qui te génère la feuille Excel de résultat ensuite.

  4. #24
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    Ok j'explique TOUT!
    Processus :

    -Je pars d'un fichier excel qui est généré par un autre outil, avec un format qui ne me convient pas.
    -Dans un premier temps je "formate" mon fichier pour avoir un modèle qui corresponde à ceux que je traite via Access.
    -Depuis Access, Je demande à l'utilisateur de rentrer des info puis je fais une vingtaine de requetes, et je renvois le résultat final à un fichier excel qui comprend beaucoup de feuilles avec des dixaines de TCD.

    Mes soucis pour tout passer sur un outil :
    - Via Access mes TCD ne fonctionnent pas, et comme je dois avoir le résultat sur Excel, je souhaite faire mes refresh de TCD sur Excel.
    - J'ai peur que les requêtes que je fais soient trop lourdes pour être faite dans un fichier Excel. (plus de 3000 lignes, avec une vingtaine de requêtes).

  5. #25
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par ZebreLoup Voir le message
    Une autre solution est d'utiliser Access comme application principale. Tu peux ainsi générer ton formulaire facilement et tu peux très bien faire une procédure qui te génère la feuille Excel de résultat ensuite.
    Personnellement je préconiserais celle-ci, car je l'emploi sur un dossier d'un de mes clients.

    Philippe

  6. #26
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Il suffit que l'utilisateur rentre ses infos dans Excel. Tu les insères dans Access via ADO, ensuite tu fais tes requêtes toujours par ADO, et c'est bon. Tu n'as jamais ouvert Access (le logiciel) et tu as tout maîtrisé du début à la fin.
    Il y a juste un point qui peut être bloquant, peut-être vaut-il mieux séparer la partie génération des résultats et la partie saisie. Veux-tu que l'utilisateur puisse lui-même générer tous les résultats ?

    Je veux bien t'aider si tu as un petit fichier exemple (simplifié, sans donnée confidentielle).

  7. #27
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    Bonjour,

    Après un loooong weekend, me revoilà.
    Bon donc j'adopte une de vos propositions : Je passe tout sous access!
    J'ai juste un souci pour réécrire mon code comptatible avec access et plus excel...
    Comment je peux faire pour ouvrir une dialogbox, selectionner un fichier excel, et activer une feuille de ce fichier?

    J'avais un truc de ce genre, mais j'ai bien compris que le FileDialog n'est pas un workbook, et donc pas de selection de feuille possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       Set fd = Application.FileDialog(msoFileDialogOpen)
       If fd.Show() Then
     
            'Copie les donnees avec le bon format (prepartion à l'import)
            Sheets("Summary raw data").Activate
            range("A5").select
       Else
       End If

  8. #28
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Alors maintenant, tu fais l'erreur inverse !
    Avant, tu voulais manipuler Access depuis Excel comme tu le ferais manuellement, maintenant tu essaies de faire l'inverse.

    Il va falloir que tu apprennes à utiliser les "objets". Sers-toi du fileDialog pour récupérer le nom du classeur. Ensuite tu peux ouvrir ce classeur en créant un objet Excel.Application, et en utilisant la méthode Open. Tu manipuleras ensuite l'objet Workbook créé par Open. En particulier un objet Worksheet. Si par exemple tu as nommé appExcel ton objet Application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set wb = appExcel.Open(fileName)
    Set ws = wb.Worksheets("Summary raw data")
    ws.Range("A5").Value = "Toto"
    Il faut déjà éviter les Activate ou Select quand tu fais du VBA directement dans Excel. C'est encore plus vrai si c'est de la manipulation d'Excel à partir d'Access.

    Je crains que tu ne vas pas couper à la lecture d'un tuto VBA un peu plus avancé.

  9. #29
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    Hum... ok je vais m'y mettre.
    Seule question, qu'est-ce que retourne :

    Set fd = Application.FileDialog(msoFileDialogOpen)

    Parce que j'aimerais sélectionner un fichier excel pour faire des manip'.

  10. #30
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Regarde dans la F.A.Q

    Pour info complémentaire, fd.Show retourne 0 si le bouton annuler a été cliqué.

Discussions similaires

  1. Ouvrir Access depuis Excel dèjà connecté
    Par Jean-Marc_RL dans le forum Access
    Réponses: 1
    Dernier message: 17/12/2013, 09h50
  2. Ouverture d'une table Access depuis Excel
    Par SlySylvain dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 18h36
  3. [VBA-E] Appel macro Access depuis Excel en mode silencieux
    Par lordkoko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 10h12
  4. Impossible d'ouvrir une base Access depuis Excel
    Par vciofolo dans le forum Access
    Réponses: 8
    Dernier message: 14/12/2005, 12h09
  5. Renseigner un formulaire Access depuis Excel
    Par vciofolo dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2005, 11h12

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