Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Ouvrir un fichier Csv dans Excel
A l'occasion du volet précédent, nous avons appris Ã
exporter les données de tables Access dans des
fichiers Csv parfaitement structurés et prêts à l'emploi. Dans cette suite logique, nous proposons de commander l'
ouverture automatique dans Excel des données ainsi exportées dans ce format.
Base de données Access à télécharger
Pour poursuivre ce développement, nous suggérons fort logiquement de récupérer la
base de données du volet précédent.
Comme vous le constatez, la décompression livre le
fichier de la base de données accompagné d'un
sous dossier nommé
exports . Selon le
code VBA Access déjà en place, c'est lui qui doit accueillir les données de tables exportées au
format Csv .
Double cliquer sur le fichier de la base de données pour l'ouvrir dans Access ,
Dès lors, cliquer sur le bouton Activer le contenu du bandeau de sécurité,
Dans le volet de navigation, double cliquer sur le formulaire fQuestions pour l'ouvrir,
Sur le formulaire, déployer la liste déroulante qui se propose,
Comme vous pouvez le voir, elle offre de choisir parmi l'un des
noms de tables énumérés dans le volet de navigation. Il s'agit d'anciens questionnaires destinés à une
application d'évaluation . Si vous choisissez l'un d'entre eux et que vous cliquez sur le
bouton Exporter du dessous, ses informations sont converties au
format Csv et se retrouvent stockées dans le
sous dossier exports de l'application.
Poursuivre le code VBA
Nous l'avons dit, le
code VBA permettant d'
exporter les informations de tables au
format Csv , existe déjà . Nous devons l'enrichir pour qu'il soit en mesure d'ouvrir dans l'enchaînement de l'exportation, les fichiers générés dans
Excel .
A gauche du ruban Accueil , cliquer sur la flèche du bouton Affichage ,
Dans les propositions, choisir le mode Création ,
Sur le formulaire en conception, cliquer sur le bouton Exporter pour le sélectionner,
Dès lors, activer l'onglet Evénement de sa feuille de propriétés ,
Puis, cliquer sur le petit bouton associé à son événement Au clic ,
Comme une
procédure événementielle est déjà attachée à ce bouton, nous basculons directement dans l'
éditeur VBA Access et plus précisément dans les bornes de la
procédure exporter_Click .
exporter est le
nom du bouton .
Click est son
événement associé. Son code se déclenche donc
au clic sur le bouton Exporter . Cette procédure se charge de
parcourir tous les enregistrements de la table désignée, de recomposer les lignes du
fichier Csv en séparant les
informations de champs par des
délimiteurs et d'exporter le résultat sur le disque.
Variable d'application Excel
Nous devons enrichir cette procédure pour proposer l'
ouverture automatique de cette
exportation Csv dans
Excel . Et pour cela, nous avons besoin d'un objet permettant de
piloter une instance d'Excel .
Private Sub exporter_Click()
Dim base As Database: Dim enr As Recordset
Dim nomTable As String: Dim ligne As String
Dim nomF As String: Dim memLibre As Integer
Dim fExcel As Object: Dim reponse As Byte
...
Nous déclarons la
variable fExcel comme un
objet au sens large. C'est elle qui doit
instancier la classe pour hériter des propriétés et méthodes permettant de
piloter une instance d'Excel . Puis, nous déclarons la
variable reponse comme un
entier court (Byte). Nous décidons de demander à l'utilisateur s'il souhaite ou non ouvrir le
fichier Csv dans
Excel , à l'issue de l'exportation. C'est elle qui doit donc récolter sa réponse (traduite en chiffre par VBA), pour adapter la suite du traitement.
Questionner l'utilisateur
Cette demande doit être réalisée à la fin du traitement, une fois l'
exportation terminée . La
fonction VBA MsgBox permet d'afficher une
boîte de dialogue avec des boutons à définir. Un clic sur l'un de ces boutons renvoie une
valeur numérique différente. C'est cette valeur que nous devons évaluer pour décider de la suite des actions. Donc une
instruction conditionnelle est nécessaire.
Après le dernier End If et avant le End Sub , ajouter les instructions VBA suivantes :
...
Set enr = Nothing
End If
reponse = MsgBox("Souhaitez-vous ouvrir le fichier généré dans Excel ?", vbYesNo + vbQuestion)
If reponse = 6 Then
End If
End Sub
...
Dans la
variable nommée
reponse , nous stockons la
valeur du bouton cliqué par l'utilisateur sur la boîte de dialogue. Dans cette boîte de message, nous greffons
deux boutons Oui et Non (vbYesNo) accompagnés de l'
icône de la question (+ vbQuestion). Si l'utilisateur clique sur Oui, la valeur retournée est le
chiffre 6 . S'il clique sur non, la valeur retournée est 7.
Ouvrir le fichier Csv dans Excel
Si la
variable reponse renferme le
chiffre 6 (If reponse = 6 Then), nous décidons donc de poursuivre le traitement. Dans ces conditions, il est question d'
ouvrir le fichier Csv dans Excel grâce à notre
objet fExcel . Le
chemin d'accès au fichier Csv est stocké dans la
variable nomF . Nous devons forcément l'exploiter.
Dans les bornes de l'instruction conditionnelle, ajouter les lignes VBA suivantes :
...
If reponse = 6 Then
Set fExcel = CreateObject("Excel.Application")
fExcel.Visible = True
fExcel.Workbooks.Open nomF, Format:=4, local:=True
Set fExcel = Nothing
End If
...
Nous initialisons (Set) tout d'abord l'
objet fExcel , en instanciant la
classe Excel . Pour cela, nous exploitons la
fonction VBA CreateObject avec la valeur
Excel.Application en paramètre. Dès lors, nous exploitons premièrement sa
propriété héritée Visible que nous réglons Ã
True . En effet, nous souhaitons afficher le
Csv dans
Excel . Nous ne souhaitons pas l'ouvrir en tâche de fond, soit en mémoire. Puis, nous exploitons la
méthode Open de sa
collection Workbooks . En premier paramètre, nous lui passons le
chemin d'accès au fichier Csv Ã
ouvrir dans Excel . Mais ce n'est pas tout, avec l'
attribut format réglé sur la
valeur 4 , nous lui indiquons que le
délimiteur utilisé dans ce
Csv est le
point-virgule . Cependant et pour qu'il soit bien interprété, nous réglons l'
attribut local sur la
valeur True . Ainsi,
Excel considère la langue actuelle du système pour que le point-virgule ne soit pas remplacé à la volée par une virgule. C'est ainsi que les
délimiteurs sont pris en compte et que les données doivent s'afficher dans des colonnes explicitement différentes.
Enregistrer les modifications (CTRL + S) et basculer sur le formulaire (ALT + Tab),
L'exécuter avec la touche F5 du clavier ,
Choisir un nom de table avec la liste déroulante puis cliquer sur le bouton Exporter ,
La boîte de dialogue de confirmation que nous avons programmée s'interpose. Si vous cliquez sur le bouton Non, le traitement est avorté et plus rien ne se produit. Si vous cliquez sur le bouton Oui, une fois l'exportation Csv terminée, le
fichier Csv résultant est automatiquement ouvert dans
Excel .
Et comme vous pouvez l'apprécier, hormis un réajustement nécessaire des colonnes en largeur, les informations sont parfaitement structurées et exploitables par
Excel . Pour chaque enregistrement, chaque information de champ est placée dans une colonne explicitement différente.