Droit de diffusion et
d'utilisation:
Tous les documents ou partie de document ainsi que le code
sont libres d'accès, mais ne peuvent pas être diffusés
sur d'autres sites HTTP, FTP ou autres, sans mon accord.
L'ensemble de mon code mis à votre diposition est libre d'utilisation
tant qu'il ne sert pas à la réalisation d'applications
payantes. Je demande juste aux personnes incluant mon code dans
leurs applications d'y laisser le commentaire mis en entête.
2. Ouvrir un fichier spécifique:
2.1 Ouverture d'un fichier Excel :
Ouvrir un fichier Excel c'est ce qu'il y a de
plus simple. Voici un exemple de code :
Je ne remarque pas les lignes permettant de fermer le fichier
mais je vous rapelle que ces lignes ne sont pas à négliger
mais si elles ne sont pas obligatoires.
2.2 Ouverture d'un fichier CSV:
A titre informatif, les fichiers CSV sont des
fichiers textes où une ligne du fichier correspond à une
ligne de la feuille et les colonnes sont séparées par des
';'.
Voici un petit exemple :
Le fichier :
123,45,,52,65
,10,23,,
,,23,,41
Le tableau résultat est le suivant :
Quand je disais que le fichier Excel était le
plus simple, en fait les CSV sont tout aussi simple.
2.3 Ouverture d'un fichier texte contenant des séparateurs :
Sous Excel vous pouvez ouvrir des fichiers textes
et les affichés sous forme de tableur car chaque colonne
est séparée par un symbôle ou alors les colonnes
ont une taille fixe. Voici la liste des séparateurs gérés
par Excel :
- la tabulation
- le point-virgule
- la virgule
- l'espace
Mais si celà ne vous convient pas, Excel vous propose de
choisir votre propre séparateur. Mais ce ne peut être
qu'un seul caractère.
Comme tout bon tableur vous pouvez indiquer à Excel à
partir de quelle ligne du fichier vous souhaitez commencer
l'import et à quel format (celui par éfaut est Windows(ANSI)).
Voici le code pour ouvrir un fichier texte avec comme séparateur
le ';' commençant à la deuxième ligne et au
format Windows(ANSI) :
'Déclaration des variables
Dim appExcel As Excel.Application
'Application Excel
Dim wbExcel As Excel.Workbook
'Classeur Excel
Dim wsExcel As Excel.Worksheet
'Feuille Excel
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Workbooks.OpenText Filename:= "C:\MonFichierTexte.txt", Origin:=xlWindows, _
StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True,
Comma:=False, Space:=False, Other:=False,
FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Set wbExcel=appExcel.ActiveWorkbook
Set wsExcel=wbExcel.ActiveSheet |
Afin de ne pas être trop perdu je vous explique
à quoi correspond chaque option ci-dessus :
- Filename : nom du fichier (tout le monde avait deviné :oD )
- Origin : indique l'origine du fichier dans notre cas
xlWindows signifie Windows(ANSI)
- StartRow : indique à partir de quelle ligne le tableau comence
- DataType : indique sous quelle forme est stocké le
fichier. xlDelimited veut dire que les colonnes sont séparées
par un ou plusieurs séparateurs. xlFixedWidth veut dire
que les colonnes ont une largeur fixe.
Les options suivantes ne sont valides que si
DataType:=xlDelimited
- TextQualifier : permet d'identifier les zones de texte.
Par exemple si vous 123;"blabla;blabla";123 vous pouvez
avoir trois ou quatre colonnes suivant ce que vous choisissez
comme identifieur de texte. Vous pouvez utiliser xlDoublQuote
(c'est notre cas : " ), xlSingleQuote ( ' ) ou bien xlNone
si vous n'avez pas d'identifieur de texte. Donc pour revenir
à l'exemple si vous mettez xlDoubleQuote vous obtenez trois
champs sinon vous en obtenez quatre.
- ConsecutiveDelimiter : Si cette propriété est
à True alors si vous 1;;2 il ne comptera que deux colonnes
car s'il trouve plusieurs séparateurs à la suite
il réagit comme s'il y en avait qu'un
- Tab : est à True si la tabulation est un séparateur
sinon est à False
- Semicolon : est à True si le point-virgule est un séparateur
sinon est à False
- Comma : est à True si la virgule est un séparateur
sinon est à False
- Space : est à True si l'espace est un séparateur
sinon est à False
- Other : si vous ne spécifier pas de caractère
il est à False. Si vous souhaitez utiliser un caractère
que vous définissez vous devez mettre True et rajouter
la propriété OtherChar:="m" : en mettant
votre caractère à la place de m.
- FieldInfo:=Array(1,1) : indique que la largeur des
colonnes est aléatoire.
Les options ci dessous ne sont valides que si DataType:=xlFixedWidth
- FieldInfo: c'est une suite de Array(x,y) où x correspond
à l'index de la première colonne et y au type de
la colonne. y peut prendre les valeurs suivantes :
- xlGeneralFormat Général : 1
- xlTextFormat Texte : 2
- xlMDYFormat Format de date Mois-Jour-Année : 3
- xlDMYFormat Format de date Jour-Mois-Année : 4
- xlYMDFormat Format de date Année-Mois-Jour : 5
- xlMYDFormat Format de date Mois-Année-Jour : 6
- xlDYMFormat Format de date Jour-Année-Mois : 7
- xlYDMFormat Format de date Année-Jour-Mois : 8
- xlEMDFormat Date EMD : 9
- xlSkipColumn Non distribuée : 10
Voici un exemple où vous souhaitez charger sur 3 colonnes.
La première colonne commence à 0 (début de
la feuille), la deuxième à la 10e colonne et la troisième
à la 15e colonne. Le code obtenu est FieldInfo:=Array(0,1),
Array(10,1), Array(15,1)
Le prochain chapitre portera sur la navigation dans une feuille
Excel et l'affectation des cellules.
Documents réalisés par
Sébastien Curutchet
|