 |
- Ze Officiel Site Oueb-
fait par des personnes qui veulent se faire plaisir
|
|
 |
Mis à jour le 25/06/2002
Par Sébastien
Curutchet
Droit de diffusion:
L'ensemble ou partie de ce document ainsi que le code mis
à disposition, ne peut être diffusé sur d'autres sites
Web sans l'autorisation au préalable de son créateur.
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 :
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierExcel.xls")
Set wsExcel = wbExcel.Worksheets(1) |
Je ne remarque pas les lignes permettant de fermer le fichier mais je vous
rapelle que ces lignes ne sont pas à négliger même 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.
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierCSV.csv")
Set wsExcel = wbExcel.Worksheets(1) |
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) :
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Set appExcel = CreateObject("Excel.Application")
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.