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 :

Code VBA pour importation depuis Excel [AC-2007]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut Code VBA pour importation depuis Excel
    Bonjour,

    Voila, j'ai besoin que quelqu'un m'aide a faire un code VBA, ayant des connaissances très limitées en Access.

    Alors pour le code il faudrait :


    - dupliquer le contenu de la table T1 (on va l'appeler comme ça) vers T1_mémo
    - vider la table T1
    - importer les données depuis la table Excel

    Et tout ça en cliquant sur un bouton qui mette a jour ma table

    Merci pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 466
    Points : 550
    Points
    550
    Par défaut
    Bonjour,
    Puis-je conseiller d'aller lire les tutoriels sur ces site ?
    http://cafeine.developpez.com/access/tutoriel/excel/
    Bonne journée,

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour le tuto mais malheureusement je ne comprend vraiment rien

    Bonne journée également

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,


    En décomposant, on a :
    Solution pour débutant :
    - dupliquer le contenu de la table T1 (on va l'appeler comme ça) vers T1_mémo
    - Créer une requête ajout des données de la table T1 vers la table T1_mémo, disons R_Ajout_T1_mémo. Assez simple dans le QBE
    - Appeler cette requête en VBA avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.OpenQuery "R_ajout_T1_mémo"
    - vider la table T1
    - Créer une requête suppression de toutes les données de la table T1, disons R_Sup_T1. en QBE.
    - Appeler la requête avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.OpenQuery "R_Sup_T1"
    ou faire directement le code VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.RunSQL "DELETE * FROM T1"
    - importer les données depuis la table Excel
    - Utiliser la méthode TransfertSpreadSheet c-à-d. taper dans la fenêtre VBA, sélectionner et appuyer sur F1 pour avoir l'aide.

    On pourrait même utiliser directement cette dernière méthode pour importer directement les données dans la table T1_mémo.

    Sans explication supplémentaires sur ce le but de l'opération, voilà en gros les pistes sur lesquelles il faut creuser.

    Cordialement,

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Bonjour et merci Madefemere,

    Malheureusement j'ai pas compris grand chose, je suis vraiment vraiment débutante dans ce domaine la.

    Alors en faite, j'ai une base de prospects sur Excel est il faudrait que je l'importe vers Access pour que tout ce que je saisie dans Excel soit mis à jour dans Access. Mais avec une simple importation, je n'ai pas de clé primaire donc je ne pourrais pas faire de relation avec mes futures tables.

    Si le classeur Excel s'appelle "Gestion 2009", la feuille concerné "base" et que pour l'instant ma base de donnée est vide, ça donnerait quoi en code VBA ?

    Merci pour ton temps

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-,

    Est-ce que cette discussion t'inspire ?
    Le temps que je retrouve une discussion analogue à la tienne (ça existe, mais avec le nombre de sujet sur le site, c'est pas aussi simple).

    @+

    EDIT : je pense que le sujet de la discussion ICI est similaire à ton problème

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Re-,

    Malheureusement, ça m'inspire pas beaucoup,pour mon problème faut juste que je puisse lier mon fichier Excel sur Access mais il me faut une clé primaire pour de futures requêtes.

    Merci encore

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    EDIT : je pense que le sujet de la discussion ICI est similaire à ton problème
    Si je fais comme expliquer dans la cette discussion, toutes mes requêtes vont fonctionner ? Et comment mettre à jour sans avoir a cliquer sur le bouton tout le temps ?

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Si je fais comme expliquer dans la cette discussion, toutes mes requêtes vont fonctionner ?
    Normalement oui, il faut que tu montres quelles requêtes tu lances pour que je sois plus affirmatif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Et comment mettre à jour sans avoir a cliquer sur le bouton tout le temps ?
    Si tu parles des confirmations dans les requêtes actions d'Access, il faut passer par VBA et utiliser la méthode Docmd.SetWarnings FALSE qui permet d'inhiber les avertissements.

    Tu peux publier une centaine d'enregistrement de ton fichier EXCEL (si ce n'est pas confidentiel) ou anonymisées pour te montrer et ta base Access si tu veux.

    Cordialement,

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Base de données.xlsx

    Je ne peux pas joindre la base de donnée, je ne sais pas pourquoi, surement a cause de la liaison avec Excel. J'ai fais une impression écran de ma base de donnée dans la Feuil2.

    Sinon ma base de donnée, se décompose en deux tables différentes pour l'instant, la table "base prospects" qui est liée avec Excel et la table "devis"
    (Colonne 1 : Num, Colonne 2 : Nom, Colonne 3 : Prénom, et Colonne 4 : Date de devis).

    Si je rajoute un client sur Excel, il va se mettre automatiquement dans "base prospects" mais j'aimerais que la table "devis" est également le nouveau client. Or quand, j'ai fais un test, il ne se met pas et je suis obligé de copier/coller ma table "base prospects" a chaque fois.

    Merci de ton aide

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Tu as un problème de compréhension je pense avec les bases de données. Ce n'est pas parce que tu as ajouté ton client dans ta table "Base Prospects" qu'automatiquement, tu vas avoir un devis pour ce client !
    C'est 2 processus, opérations ou "entités" différents comme on dit dans les principes de base de données.

    Après, on peut effectivement créer un code ou macro pour qu'automatiquement, quand tu "as rajouté" un client dans "base prospects", on créera automatiquement un devis pour lui.
    Mais il me faut plus d'informations sur ce que tu veux faire pour te proposer une structure de données qui correspond à tes besoins. Est-ce que tu peux expliquer "avec des mots" sans utiliser les terminologies d'Access ou techniques des logiciels ce que tu veux faire pour pouvoir te mettre à l'étrier et te proposer une solution.

    Cordialement,

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Je vais t'expliquer un peu le fonctionnement de l'entreprise ça sera peut être plus compréhensible.

    Alors une personne se présente a l'entreprise pour un devis, donc je saisie ses coordonnées dans ma base Excel qui se met automatiquement dans ma base de donnée mais quand la personne viens dans l'entreprise, il faut lui faire automatiquement un devis, du coup c'est pour ça que je veux que le numéro du client, le nom, et le prénom se mette automatiquement dans les devis, comme ça il me manquera plus qu'a saisir la date du devis.

    Je sais pas encore si c'est très compréhensible

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Pourquoi que la date du devis ?
    Dans ce cas, tu crées un formulaire pour tes saisis de devis et tu crées une liste déroulante basée sur "base prospects" pour appeler tes clients.

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    C'est un peu compliqué en faite les devis sont fais sur Excel

    Il me faut que la date pour Access pour après faire des requêtes "Devis fait" par exemple ou "Devis a faire" pour ce qui non pas de date

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Donc, si on résume :

    1- Tu as un fichier excel avec tes données clients que tu lis à ta base de données comme étant la table "base prospects". A priori, à ceque j'ai compris, tu corriges si c'est faux, chaque client est identifié par un numéro unique (la colonne NUM).
    2- Des devis sont créés sous Excel à différentes dates pour CHAQUE client.
    3- De temps en temps, le fichier de client est mis à jour (ajout de client). Si ce sont des mis à jour des valeurs existants, c'est automatiquement répercuté dans la table liée.
    4- Tu as une table "Devis" dans ta base de données où tu veux avoir les clients qui ont des devis (date).

    a- Si le but est de trouver les clients sans devis, il suffirait de créer une requête non-correspondance entre les 2 tables (l'assistant-requête peut te guider pas-à-pas).
    b- Si c'est trouver les clients avec devis, faire une requête-sélection simple avec la jointure adéquate pour extraire les données.

    C'est bon ?

    Ci-joint une base exemple avec un fichier Excel attachée :
    - Dans le formulaire F_Devis, quand tu rajoutes un client avec une date, le client ne s'affichera plus dans la liste déroulante dans l'enregistrement suivant.
    - La requête R_ClientSansDevis parle d'elle-même.
    - Cette même requête est source de la liste déroulante.

    @+

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Bonjour Madefemere,

    Merci pour tout, ça m'aide beaucoup

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

Discussions similaires

  1. Code VBA pour exporter vers Excel/Access
    Par piflechien73 dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 26/03/2012, 07h37
  2. [AC-2003] Code VBA pour importer un fichier Excel dans access
    Par granddebutant dans le forum VBA Access
    Réponses: 5
    Dernier message: 24/01/2012, 14h51
  3. Code VBA pour importer des données vers Excel
    Par thanmirt dans le forum SDK
    Réponses: 1
    Dernier message: 09/04/2011, 17h53
  4. [XL-2007] Code VBA pour lire données d'un tableau dans Excel
    Par PierreL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/10/2009, 19h31
  5. Code VBA pour communication avec un port série dans EXCEL
    Par Fbroom dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2008, 10h14

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