Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Importer des données Excel dans Access
Les méthodes de communications entre les logiciels de la gamme Office sont désormais efficaces et triviales à mettre en oeuvre. Mais dans certains cas, les données ne sont pas correctement préparées à l'exportation. Parfois plusieurs tableaux constituent une même
feuille Excel. Dans d'autres cas, des cellules parasitent la clarté des informations à isoler. Il peut par exemple s'agir de cellules fusionnées pour accueillir les titres d'une feuille.
La capture ci-dessus illustre une portion des tableaux composant une même feuille. Cette dernière réunit plusieurs symptômes. Des titres sont placés dans des cellules fusionnées. Plusieurs tableaux de la même feuille doivent être importés dans des
tables Access différentes. Tous les champs de l'un des tableaux ne sont pas souhaités.
Source et présentation de la problématique
L'objectif consiste donc à réaliser des importations maîtrisées. Dans le même temps, il s'agit de pouvoir formater les champs à la volée de manière à réceptionner des tables bien formées, prêtes à être exploitées.
Access est un
SGBDR. Il offre tous les outils et toute la puissance nécessaires pour manipuler les données, à plus forte raison lorsqu'elles sont nombreuses. Nous proposons de démontrer les techniques sur une source existante. Et bien que les données ne soient pas denses, les méthodes restent les mêmes.
Ce classeur n'est constitué que d'une seule feuille nommée
liste_salaries. Nous l'avions exploitée pour la mise en oeuvre de la
formation Excel pour réaliser les accords grammaticaux. Deux tableaux parfaitement distincts sont présentés. Le premier est situé entre les colonnes B et H. Il représente une liste des salariés d'une entreprise pour lesquels il s'était agi de calculer les aides attribuées, en fonction du nombre d'enfants. Le second est situé entre les colonnes J et K. Il représente les barèmes des aides allouées selon le nombre d'enfants.
Vous notez de même la présence de cellules de titre fusionnées en ligne 2. Elles sont potentiellement conflictuelles pour une exportation, comme pour une importation. C'est ce que nous allons démontrer entre autres.
Les informations que nous souhaitons importer dans des
tables Access distinctes débutent donc à partir de la ligne 4. De plus, concernant le premier tableau, nous ne souhaitons pas importer les champs vides. Il s'agit des colonnes F à H. Vous l'avez compris, l'objectif est de pouvoir définir de façon précise les informations à intégrer, pour maîtriser au mieux l'importation des données externes.
Procédures d'importation
Comme les
tables Access doivent être créées en même temps que les données sont réceptionnées, nous proposons de débuter depuis une
base de données vierge.
- Démarrer Access,
- Dans l'écran d'accueil, choisir une base de données vide,
- Dans la boîte de dialogue qui suit, la nommer salaries.accdb,
- Idéalement, définir le même emplacement que celui du classeur Excel téléchargé,
- Cliquer sur le bouton Créer,
- Puis, fermer la table proposée à la conception en cliquant sur la croix de son onglet,
Nous débutons ainsi depuis un environnement totalement vierge. Le
volet des objets Access sur la gauche de la fenêtre en atteste. Il liste habituellement tous les objets créés, comme les tables et les formulaires. A ce stade, il est vide.
Nous souhaitons tout d'abord importer les données des salariés dans une
table que nous nommerons
table_salaries. Il n'est pas nécessaire de créer cette table en amont. Tout ou presque peut se paramétrer pendant la
procédure d'importation.
- Cliquer sur l'onglet Données externes en haut de la fenêtre Access pour activer son ruban,
- Dans la section Importer et lier du ruban, cliquer sur le bouton Nouvelle source de données,
- Dans la liste qui apparaît, pointer sur A partir d'un fichier,
- Puis, dans le sous menu qui suit, cliquer sur Excel,
- Dans la boîte de dialogue qui surgit, cliquer sur le bouton Parcourir,
- Double cliquer alors sur le fichier Excel tableaux-pour-importations.xlsx à l'endroit où il a été téléchargé,
- Dans les choix proposés, conserver la première case cochée (Importer les données sources...),
- Puis, cliquer sur le bouton Ok pour démarrer l'assistant Importation de feuille de calcul,
Comme vous le constatez,
Access propose un aperçu des données issues du classeur désigné, telles qu'il les perçoit. Si plusieurs feuilles constituaient la source, l'assistant proposerait de choisir parmi elles, afin de présenter l'aperçu de chacune.
Nous remarquons très vite que les données sont mélangées et qu'il semble compliqué d'indiquer Ã
Access, quelles zones doivent être importées. Une case permet de définir quels sont les entêtes de colonnes.
Access les exploite pour créer et nommer les champs de la table construite durant l'importation. Mais comme nous l'avions évoqué, nous constatons que les cellules de titres fusionnées posent conflit. Elles ne permettent pas de délimiter correctement les données à importer.
Nous proposons néanmoins de poursuivre la procédure d'importation pour récupérer les informations. Nous comprendrons mieux pourquoi certains réglages sont nécessaires en amont, pour bien maîtriser les importations. Il ne s'agit évidemment pas d'isoler les tableaux sur des feuilles différentes. Il ne s'agit pas non plus d'exclure les titres fusionnés. Nous verrons tout cela en temps voulu.
- Cocher la case Première ligne contient les en-têtes de colonnes,
Instantanément l'assistant déclenche une alerte. En effet, une correspondance n'est pas possible entre la première ligne et le nombre de colonnes proposé par les tableaux de la feuille.
- Décocher cette case puis cliquer sur le bouton Suivant,
Cette nouvelle étape permet de typer les champs pour ne pas devoir le faire a posteriori. Comme nous l'avait appris la
formation pour débuter avec Access, il s'agit de réglages importants pour bien construire sa
base de données. Mais comme nous savons que cette importation ne produira pas le résultat escompté, nous proposons de l'ignorer.
- Cliquer de nouveau sur le bouton Suivant,
Dans cette nouvelle étape, l'assistant propose de définir ou de créer un champ pour la
clé primaire. La
clé primaire est essentielle dans chaque
table d'une
base de données. C'est elle qui identifie chaque
enregistrement comme unique. En outre, elle permet d'établir les
relations entre les tables et propose une grande puissance d'
extraction des données par les requêtes.
- Conserver le choix par défaut (Laisser Access ajouter une clé primaire),
- Puis, cliquer sur le bouton Suivant,
- Dans cette dernière étape, nommer la table d'importation : table_salaries,
- Enfin, cliquer sur le bouton Terminer et fermer la boîte de dialogue qui suit,
La table apparaît comme nouvel élément dans le volet des objets Access.
- Dans ce volet, double cliquer sur la table table_salaries pour afficher son contenu en mode feuille de données,
Vous l'aviez déjà compris, mais les images apportent parfois une confirmation nécessaire pour une meilleure compréhension. Les données ne sont pas du tout maîtrisées. Les noms de champs créés à la volée ne sont pas explicites. Les deux tableaux sont importés dans une même
table Access. Pourtant, leurs données ne peuvent être regroupées. Des champs vides les séparent, restituant les colonnes présentes entre les deux tableaux de la feuille source.
Nommer les plages de données
Une technique est principalement essentielle pour réaliser des importations de données maîtrisées. Depuis la feuille source, elle consiste Ã
nommer les plages de cellules des tableaux à importer.
Access est en mesure de les interpréter. Il n'est donc pas question de modifier quoique ce soit dans la feuille source. Il s'agit simplement d'ajouter des repères permettant de délimiter explicitement les informations à importer séparément.
- Fermer la table Access en cliquant sur la croix de son onglet,
- Dans le volet des objets Access, cliquer avec le bouton droit de la souris sur la table table_salaries,
- Dans le menu contextuel, choisir Supprimer et confirmer le message d'alerte par Oui,
La
touche Suppr du clavier permet d'atteindre le même résultat, dès lors que la table est sélectionnée dans le volet des objets Access.
- Basculer sur la feuille liste_salaries du classeur Excel,
Nous devons identifier les deux tableaux indépendamment et de façon explicite. Pour le premier des deux, il s'agit d'exclure les colonnes non désirées, comme nous l'avons précisé en préambule de cette formation. Il est important de délimiter précisément les données, ce qui permettra d'exclure de l'identification les titres fusionnés.
- Cliquer en B4 pour activer la première cellule du tableau à délimiter,
- Tout en maintenant la touche MAJ enfoncée (Shift), cliquer sur la dernière cellule du tableau, soit E34,
Comme souhaité, nous excluons donc les colonnes F, G et H.
- Dans la zone Nom, en haut de la feuille Excel et à gauche de la barre de formule, taper l'intitulé tableau_salaries,
- Valider ce nom en enfonçant la touche Entrée sans quoi Excel ne le considère pas,
Remarque : Un nom de plage de cellules ne peut pas contenir d'espace. Tant qu'à faire, il est judicieux d'éviter les accents et tout type de caractère latin.
Nous devons reproduire les mêmes techniques pour identifier explicitement le tableau des aides.
- Sélectionner la plage de cellules J4:K10,
- Dans la zone Nom, saisir l'intitulé tableau_aides et valider par la touche Entrée du clavier,
Nous venons de travailler dans la mémoire de l'ordinateur. Pour qu'
Access ait connaissance de ces nouvelles informations, nous devons les consolider.
- Enregistrer le classeur (CTRL + S),
Importer plusieurs tableaux d'une même feuille
Nous venons de produire les manoeuvres essentielles pour réaliser des importations sélectives et précises. Néanmoins, il est important de ne pas sous-estimer les propositions de l'assistant. Nous devons typer les données au plus juste et ne pas omettre les clés primaires.
- Basculer sur la fenêtre Access (ALT + Tab),
- Cliquer sur l'onglet Données externes en haut de la fenêtre Access pour activer son ruban,
- Dans la section Importer et lier, cliquer sur le bouton Nouvelle source de données,
- Dans la liste, pointer sur la rubrique A partir d'un fichier,
- Dans le sous menu, cliquer sur la proposition Excel,
- Dans la boîte de dialogue qui suit, double cliquer sur le classeur tableaux-pour-importation.xlsx à l'aide du bouton Parcourir,
- Cliquer sur le bouton Ok pour déclencher l'assistant importation de feuille,
A première vue, les données ne sont pas mieux interprétées par
Access, dans cette première étape. Mais vous allez comprendre qu'il n'en est rien.
- Cocher la case Afficher les plages nommées,
Instantanément, les données apparaissent structurées et délimitées.
Access récupère et propose les plages que nous avons nommées comme sources d'importation. Les titres fusionnés sont naturellement exclus et les tableaux explicitement séparés.
- Sélectionner la plage tableau_salaries et cliquer sur le bouton Suivant,
- Dans cette nouvelle étape, cocher la case : Première ligne contient les en-têtes de colonnes,
Cette fois, plus aucune ambiguïté ne subsiste. Grâce au nom donné,
Access identifie parfaitement la première ligne comme l'entête. Les noms de colonnes vont être exploités pour créer les
champs de la table d'importation.
- Cliquer sur le bouton Suivant en bas de la boîte de dialogue,
Cette nouvelle étape de l'
assistant importation propose de
typer les champs pour mâcher le travail. Les propositions pour les trois premiers champs sont correctes. Une fois la table créée, il s'agira néanmoins d'affiner la propriété afin de réduire leur taille. La civilité par exemple est bien un
champ de type texte. Mais nous savons que trois caractères (Mme) au plus y seront inscrits. Un dimensionnement ajusté permettra de ne pas allouer trop d'espace mémoire à un champ qui ne le requiert pas.
La proposition pour le
champ Nb Enfants est loin du compte en revanche. Le
type réel double n'est pas du tout approprié. Les informations de ce champ ne proposeront jamais de décimales. Il s'agit de nombres entiers, très petits qui plus est.
- Cliquer sur l'étiquette du champ Nb Enfants,
- Dans la liste Type de données, choisir Octet,
Le
type de données Octet autorise la saisie de nombres entiers compris entre 0 et 255. Nous sommes donc larges mais nous ne pouvons pas réduire plus. Aucune famille ne possèdera jamais autant d'enfants.
- Cliquer sur le bouton Suivant situé en bas à droite de la boîte de dialogue,
Le tableau que nous sommes en train d'importer ne propose aucune colonne permettant d'identifier chaque ligne (Enregistrement) comme unique. Une référence article, un numéro de dossier ou un code salarié aurait fait l'affaire. En conséquence, nous ne pouvons désigner aucun
champ de clé primaire et devons laisser
Access le créer.
- Conserver le choix Laisser Access ajouter une clé primaire et cliquer sur le bouton Suivant,
Nous accédons à la dernière étape de l'assistant importation. Comme nous avions judicieusement nommé nos plages de cellules, elles sont proposées pour définir les tables et prêtes à être exploitées.
- Conserver le nom proposé par défaut et cliquer sur le bouton Terminer puis fermer,
La
table tableau_salaries apparaît dans le volet des objets Access, comme ce fut le cas lors de la première importation.
- Double cliquer sur cette table pour l'afficher en mode feuille de données,
Cette fois, comme vous le constatez, les données du tableau sont parfaitement restituées.
- Cliquer sur l'onglet Accueil en haut de la fenêtre Access pour activer son ruban,
- Tout à fait à gauche du ruban, cliquer sur la flèche du bouton Affichage,
- Dans la liste, choisir Mode création,
Nous basculons ainsi en mode conception de tableau. C'est ici que doivent être typés et dimensionnés les champs. Mais c'est aussi l'outil permettant de définir les
formats et les masques de saisies. Vous notez la présence du
champ de la clé primaire (Champ ID), matérialisée par le symbole d'une petite clé.
Il s'agit désormais de procéder à l'importation de l'autre tableau, celui des aides. Les techniques sont identiques.
- Fermer la table tableau_salaries en cliquant sur la croix de son onglet,
- Dans le ruban Données externes, cliquer sur le bouton Nouvelle source de données,
- Pointer sur A partir d'un fichier et cliquer sur Excel,
- Dans la boîte de dialogue qui suit, double cliquer de nouveau sur le classeur tableaux-pour-importations.xlsx, à l'aide du bouton Parcourir,
- Puis, cliquer sur le bouton Ok pour déclencher l'assistant Importation,
- Cocher la case Afficher les plages nommées,
- Sélectionner la première proposition, soit tableau_aides, puis cliquer sur Suivant,
- Cocher la case Première ligne contient les en-têtes de colonnes et cliquer sur Suivant,
- Typer les deux champs Tranches et Aides / Enfant comme des Octets et cliquer sur Suivant,
- Laisser Access ajouter la clé primaire et cliquer sur Suivant,
- Accepter le nom proposé par défaut et cliquer sur Terminer puis Fermer,
Grâce aux
plages nommées dans
Excel, nous avons parfaitement réussi l'importation des deux
tableaux, pourtant situés sur une même feuille, dans deux
tables Access explicitement différentes.
Si vous affichez la
table tableau_aides en
mode feuille de données, vous constatez que les informations sont fidèlement restituées et archivées.
Vous remarquez même la présence pertinente du
format monétaire sur le champ Aides / Enfant.
Access l'a déduit automatiquement en interprétant le format source impliqué dans la colonne du tableau Excel.
Vous en obtenez la confirmation en affichant la table en
mode création.
Vous l'avez compris, la clé d'une
importation précise et maîtrisée réside dans l'attribution de
plages nommées depuis la
feuille source Excel. Le reste consiste à suivre méticuleusement les étapes de l'
assistant importation, sans les négliger.