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 :

[vba] Importation de cellules Excel précises dans Acces


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 49
    Points : 59
    Points
    59
    Par défaut [vba] Importation de cellules Excel précises dans Acces
    Bonjour,

    voilà mon problème: je souhaite importer le contenu de 2 colonnes d'un fichier Excel que je génère et qu'on me renvoie complété, donc la structure ne change jamais.

    Je ne peux par contre pas faire une importation standard, que ce soit par macro ou par vba avec les fonctions AcImport...

    En fait, dans chaque ligne il y a un n° de commande (qui est généré par une exportation précédente) et 2 dates que je dois importer.

    sachant que dans ce fichier Excel il n'y a que certains N° de commande (par exemple 01, 06, 20, 55) et pas toutes, comment importer ou copier les dates dans les enregistrement correspondants?

    Je pense qu'il faut lire chaque cellule une après l'autre, donc lire le n° de commande, ouvrir l'enregistrement dans Access correspondant à ce n°, puis lire une des date, l'écrire date le champs de l'enregistrement ouvert, puis lire la 2ème date et l'écrire dans le 2ème champs de l'enregistrement ouvert, puis fermer l'enregistrement et lire le n° de commande sur la ligne suivante.

    Le raisonnement me semble correct, mais c'est au niveau de la mise en oeuvre que je bute, je n'ai trouvé nulle part un exemple de lecture d'une cellule précise dans Excel pour ensuite écrire une valeur dans Acces...

    Si vous avez des idées, je suis preneur!!!

    Merci!!!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 69
    Points
    69
    Par défaut
    ça mnque un peu de clarté, mais ton souci doit se résoudre au niveau du choix de ta clé primaire dans la table...il faut importer avec une clé sans doublons sur le n°de comande, les champs dates seront mis à jour après import...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 49
    Points : 59
    Points
    59
    Par défaut
    Bonsoir, en fait, je vais l'expliquer avec un cas pratique:

    La structure de la base Commandes :
    CléPrim N°Cmd Date1 Date2
    1 01-0 01/02/2006 01/02/2006
    2 02-0 01/02/2006
    3 03-0 04/02/2006 02/02/2006
    4 04-0 05/02/2006
    5 05-0 06/02/2006 05/02/2006
    6 06-0 Annulée Annulée
    7 06-1
    8 07-0 08/02/2006 09/02/2006

    (PS le forum reproduit mal les tableaux que j'ai créé, donc pour la cmd 02-0 la date1 est vide, pour la 04-0 c'est la date2 qui est vide, pour la cmd 06-1 il n'y a aucune date)

    Comme on peut le constater, je ne peux pas me baser sur la clé primaire, car d'une part je ne veux pas que cette clé primaire apparaisse dans le fichier Excel, et d'autre part car la commande 07-0 correspond à l'enregistrement n°8, et non pas au n°7

    En fait, je n'exporte que les enregistrements où il manque des dates, et j'exclue de l'exportation les commandes annulées, et ça donne ceci dans le fichier Excel :

    N°Cmd Date1 Date2
    02-0 01/02/2006
    04-0 05/02/2006
    06-1

    Ensuite j'envoie ce fichier Excel à un correspondant qui remplit les cases vides
    et me le renvoie comme ceci, et pas forcément totalement complet (ce fichier Excel est destiné à faire la "navette" toutes les semaines, ci-dessous, après remplissage, Date2 de la cmd 06-1 reste vide):

    N°Cmd Date1 Date2
    02-0 31/01/2006 01/02/2006
    04-0 05/02/2006 03/02/2006
    06-1 06/02/2006


    Ce que je cherche donc à faire c'est lire le n° de commande dans le fichier Excel, puis lire les dates inscrites puis les inscrire dans l'enregistrement correspondant au n° de commande, et ce de façon définitive.

    J'ai déjà tenté de faire une importation, mais en fait l'importation ne se fait pas dans les enregistrements existants, mais uniquement dans des nouveaux enregistrements, or j'ai conçu ma base de telle manière que si un nouvel enregistrement est créé sans qu'il y ait de n° de commande, cela génère automatiquement une erreur. En effet, en mettant dans les paramètres d'importation un nom de table qui n'existe pas encore, l'importation crée bien une nouvelle table avec la structure du fichier Excel.L

    De plus il y a pas mal de tables reliées à cette table Commandes, comme la table Clients, la table DétailCommandes, la table Employés, la table Remises... Par contre je n'utilise pas de clé primaire composite car cela limitait les possibilités (j'ai essayé au départ)

    Donc soit je fait la mise à jour des champs dans Access directement depuis Excel, soit je fait une importation dans une table temporaire (CommandesImportation par ex) puis je mets à jour les champs de la table Commandes à partir de la table CommandesImportation et j'efface cette dernière à la fin de l'opération.

    Voilà, j'espère avoir été un peu plus clair...

Discussions similaires

  1. [XL-2003] Macro VBA copie valeur cellule excel et colle dans doc word
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 54
    Dernier message: 03/06/2009, 09h21
  2. Réponses: 4
    Dernier message: 13/06/2008, 10h08
  3. [VBA-E] contenu cellule excel > 255 caractères ? Comment ?
    Par Lenzo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/02/2007, 01h04
  4. [VB/VBA]import de fichier dxf / shp dans access
    Par porki dans le forum Access
    Réponses: 7
    Dernier message: 22/11/2006, 10h46
  5. Import de fichier Excel (CSV) dans MySQL
    Par mathieu77186 dans le forum Outils
    Réponses: 2
    Dernier message: 27/03/2006, 23h23

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