Exporter données Excel vers table Access si n'existent pas

Bonjour à tous,

J'aimerais solliciter votre aide pour une macro que j'aimerais optimiser.

Je dispose d'un fichier Excel contenant des données sur plusieurs colonnes (Date, Type, Devise et Numero) et qui est régulièrement mis à jour. J'aimerais donc implémenter une macro qui exporte les nouvelles données du fichier vers la table Access sans exporter celles qui sont déjà présentes dans la base Access afin d'éviter d'avoir des doublons.

J'ai déjà une codé macro qui permet d'exporter les données du fichier Excel vers ma base Access et pour éviter d'avoir le problème de doublon ma macro vide à chaque fois la table puis exporte les données du fichier Excel.

Cependant je trouve que cette macro n'est pas optimale car dans le cas où mon fichier contiendrait énormement de lignes, cela prendrait plus de temps et j'aimerais uniquement ajouter les nouvelles données dans la base Access.

Merci d'avance

65databasetest.xlsm (24.77 Ko)

Bonjour,

En fait ce que tu cherches à faire c'est synchroniser le xl avec le accdb.

Et en effet ta façon de faire me semble un peu relou.

Pour ma part, pour synchroniser un xl avec un accdb :

1/ je pars d'un xl vide

2/ un SELECT me permet de pomper le accdb vers le xl (avec du Sql c'est très rapide)

3/ ensuite une modif d'une ligne => un UPDATE, et un ajout de ligne => un INSERT

(et uniquement les lignes modifiées ou ajoutées, pour un gain de temps évident)

4/ enfin à la fermeture du xl, on purge les données du xl pour être sûr de repartir sur les données fiables contenues dans le accdb.

Ci-joint un fichier démo prévu pour synchroniser n'importe quel accdb. A la première ouverture, il est demandé de pointer vers le accdb à synchroniser et après la synchro se fait sans autre manipulation de la part de l'utilisateur (il est créé autant d'onglets que de tables)

A noter cette démo ne fonctionne que si le premier champs des tables est une clé primaire (non composée, mais pouvant être num ou alphanum au choix)

Dans cette démo, pour stopper la synchro avec une base et retrouver un fichier 'neuf', il suffit exécutez la macro 'Reboot' (via Alt F8). Ca permet de se synchroniser avec un autre accdb.

Dans le zip joint il y a aussi 2 accdb de test.

Plus de détails sur ce fichier sur => mon blog

Hello,

Merci pour la réponse.

En fait je ne cherche pas à faire la synchronisation entre le fichier xl et la table Access car ceci est déjà fait.

J'ai peut être mal expliqué mon problème, mais en fait j'ai un fichier xl contenant des données et j'exporte ces données vers ma table Access (avec exactement les mêmes noms de champs). Le fichier xl ne se vide pas car c'est en quelque sorte un "historique excel" mais il est mis à jour par ajout de nouvelles lignes de données.

Mon objectif est d'exporter uniquement les nouvelles données du fichier xl dans la table Access.

J'ai donc fait un code qui supprime tous les enregistrements de la table Access puis exporte toutes les données du fichier xl.

Le problème est que si mon fichier xl contient un grand nombre de lignes, le temps de traitement sera assez long. Je voudrais juste corriger ma macro pour que ce soit uniquement les nouvelles données du fichier xl qui soient exportés dans la table Access.

J'espère être plus clair

Bonjour,

Office possède des outils pour la gestion des bases de données et entre autres, la liaison entre Access et Excel où la mise à jour des données dans Access se fait automatiquement aux modifications/ajouts dans Excel à partir du moment ou la table et la feuille son liées !

Dans la base de données Access, cliquer sur le bouton "Excel" dans le groupe "Importer" de l'onglet "Données externes". Dans le champ "Nom fichier" chercher le fichier sur le disque et ensuite, cliquer sur le bouton d'option "Lier à la source de données en créant une table attachée" puis "Ok" et dans la page suivante, choisir la feuille voulue puis "Suivant", dans la page suivante indiquer si les champs ont des entêtes de colonnes et dans la dernière page de l'assistant donner un nom à la table ou laisser le nom par défaut.

La seule contrainte est que les données ne peuvent être modifiées que dans Excel car elle est la table source par contre, les outils Access peuvent être utilisés (requêttes, états, etc...)

Rechercher des sujets similaires à "exporter donnees table access existent pas"