Vous êtes sur la page 1sur 8

3 trucs indispensables pour grer des fichiers avec

une macro VBA


Publi le : 24 novembre 2014
Le maniement de fichiers avec des macros VBA dans Excel est la base de lextraction et de la manipulation
de donnes dans Excel. En effet, avant de transformer, normaliser et manipuler les donnes, on doit dabord
y accder. Cet article prsente donc 3 trucs indispensables pour grer vos fichiers laide de macros VBA.
Si vous souhaitez dvelopper vos comptences avec les macros VBA, nous vous suggrons de suivre notre
formation Excel Analyse et modlisation de donnes (niveau 3) VBA.

JE SOUHAITE EN SAVOIR DAVANTAGE


.

TRUC No. 1 Ouvrir un fichier dont on connat lemplacement et le nom


Dans ce cas le plus simple, on connat dj o se trouve le fichier convoit, ainsi que son nom, il devient
alors facile de louvrir, de faire les manipulations et, finalement, de le fermer.
Voici lexemple en VBA :
Public Sub Ouvrir_Fichier_Connu()
Dim wbSource, wbFichierUsager As Workbook Dclarer les variables de base
Set wbFichierUsager = ThisWorkbook

ThisWorkbook est toujours le fichier duquel la macro VBA sexcute. Cest bon de lassigner une
variable afin de passer dun fichier lautre facilement lors des traitements requis
Workbooks.Open C:\Directory\Subdirectory\File_Name.xlsm videmment, vous devrez dabord
savoir o se trouve votre fichier dans votre environnement
Il sagit dune procdure toute simple qui permet douvrir un fichier dont on connat lemplacement et le
nom
Set wbSource = ActiveWorkbook
On assigne une variable ce fichier, ds louverture, il devient le fichier actif
Ici, on insre le code qui applique les changements voulus au fichier ouvert, qui sera ensuite referm
wbSource.Close SaveChanges :=False On ferme le fichier sans le sauver
End Sub

Attention: Si vous copiez collez simplement le code ci-dessus dans un module VBA,
vous obtiendrez des erreurs. Cest que WordPress et Excel naffichent pas les
apostrophes et les guillemets de la mme faon. Vous devrez donc modifier les
apostrophes et les guillemets manuellement. Aussi, pour insrer le code VBA dans
votre fichier Excel, vous navez qu appuyer sur ALT+F11 et ensuite insrer un
nouveau module via le menu Insert .

TRUC No. 2 Ouvrir nimporte quel fichier


Le meilleur moyen daccder un quelconque fichier est dutiliser linterface fourni par MS Office afin de
nous faciliter la tche. Il y a sans doute, ce sujet, de nombreuses variantes, je vous montre celle que
jutilise de mon ct. Cette technique est utile quand le nom du fichier convoit change couramment de
nom et peut mme changer demplacement. Cette mthode est donc trs flexible.
Voici donc le code VBA cette fin :
Public Sub Ouvrir_Fichier_Quelconque()
Dim wbSource, wbFichierUsager As Workbook

Dim strFileName As String


Dim intChoice As Integer Dclarer les variables de base
Set wbFichierUsager = ThisWorkbook
On va appeler une application de MS Office afin de chercher et douvrir le bon fichier
Avec la commande qui suit, on indique que nous ne voulons quun seul fichier
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
On affiche lcran de dialogue de MS Office
intChoice = Application.FileDialog(msoFileDialogOpen).Show
On sassure que lusager a fait un choix
If intChoice <> 0 Then
On rcupre le nom complet du fichier
strFileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Workbooks.Open strFileName
Set wbSource = ActiveWorkbook
Sinon, on arrte tout en notifiant lusager
Else
Sil ny a pas de fichier, on quitte sans rien faire
MsgBox La procdure est annule car aucun fichier na t entr.
Exit Sub
End If
Ici, on insre le code qui applique les changements voulus au fichier ouvert, qui sera ensuite referm
wbSource.Close SaveChanges :=False On ferme le fichier sans le sauver
End Sub
.

TRUC No. 3 Ouvrir, successivement, tous les fichiers contenus dans un


rpertoire
Il arrive souvent quon puisse dposer, au besoin, les fichiers qui demandent un traitement ou une
extraction dans un rpertoire dfini davance. ce moment, on ne connat ni les noms exacts, ni le nombre
de fichiers traiter.
Une procdure VBA peut effectuer le travail douvrir chacun des fichiers, de faire le traitement voulu, de le
fermer, puis de passer au suivant. Encore une fois, il existe plusieurs mthodes pour un tel travail, je
propose lapproche que jutilise personnellement.
Voici donc ce code VBA :
Public Sub Ouvrir_Fichiers()
Dim wbSource, wbFichierUsager As Workbook
Dim strFileName, strPath, strSpec As String
Dim strFileList() As String
Dim i, FoundFiles As Integer Dclarer les variables de base
Set wbFichierUsager = ThisWorkbook
On commence par identifier le chemin o les fichiers se trouvent
strPath = C:\Directory\Subdirectory\ videmment, ce chemin sera diffrent dans chaque cas
strSpec = strPath & *.xlsx Il faut spcifier lextension des fichiers convoits
On extrait le contenu du rpertoire
strFileName = Dir(strSpec)
Avons-nous des fichiers?
If strFileName <> Then
FoundFiles = 1
ReDim Preserve FileList(1 To FoundFiles)

FileList(FoundFiles) = strPath & strFileName


Else Le repertoire est vide, donc on annule tout!
MsgBox Aucun fichier trouv
Exit Sub
End If
Trouver tous les autres noms de fichiers
Do
strFileName = Dir
If strFileName = Then Exit Do
FoundFiles = FoundFiles + 1
ReDim Preserve FileList(1 To FoundFiles)
FileList(FoundFiles) = strPath & strFileName
Loop
On fait les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open strFileName:=FileList(i)
Set wbSource = ActiveWorkbook
Ici, on retrouve le code VBA afin de faire les traitements de ce fichier. Ensuite, on le ferme, sans le
sauvegarder
wbSource.Close SaveChanges := False
Next i
End Sub
.

Comme vous pouvez le voir, les macros VBA peuvent tre trs puissantes afin de faciliter lextraction de
donnes provenant de fichiers externes votre fichier principal, ce qui constitue souvent la premire tape
essentielle lautomatisation de tout processus.

JE VEUX MINSCRIRE LA FORMATION VBA


NOTRE OFFRE DE FORMATIONS

Le CFO masqu vous offre 13 formations, rparties dans 4 catgories: Tableaux de bord, Modlisation
financire, Finance corporative et Analyse et modlisation de donnes. Ces formations sont offertes en
classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et sont accrdits par
Emploi-Qubec et vous remettent un certificat, la fin de chaque formation, que vous pouvez notamment
utiliser pour faire reconnatre des heures de formation continue auprs de votre ordre professionnel.

CONSULTER LA LISTE DES FORMATIONS OFFERTES


Pour info: 514-605-7112 ou info@lecfomasque.com

Francis Paquet, M.Sc., ing., EEE

Francis Paquet possde plus de 25 ans dexprience dans le monde des affaires et de la consultation. Il a dirig Modelcom,
une firme spcialise en modlisation daffaires, pendant 10 ans. ce titre, il a form et gr lquipe de modlisateurs et a
particip des centaines de mandats de consultation denvergure nationale et internationale. Sa matrise exceptionnelle
dExcel et sa comprhension tendue des enjeux daffaires, lui ont permis de figurer dans le Top 25 des meilleurs candidats
la premire dition du concours ModelOff, un concours international en modlisation financire. Bien quil ait pilot avec
succs des mandats dans divers secteurs dactivits, Francis a notamment dvelopp une comptence hors du commun pour
lanalyse de projets saveur technologique, autant dans lindustrie du logiciel, des tlcommunications que dans la haute
technologie. Grce son bagage de comptences, Francis ne se limite pas seulement aux aspects techniques du mandat mais
agit galement comme conseiller stratgique auprs de ses clients.