Mis à jour le 18/12/2002

Par Sébastien Curutchet

Mes premiers pas avec Excel Sommaire Utiliser une feuille

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 :

'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
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierExcel.xls")
'wsExcel correspond à la première feuille du fichier
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 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 :

12345 5265
 1023  
  23 41

Quand je disais que le fichier Excel était le plus simple, en fait les CSV sont tout aussi simple.

'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
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierCSV.csv")
'wsExcel correspond à la première feuille du fichier
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) :

'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.

Mes premiers pas avec Excel Sommaire Utiliser une feuille

Documents réalisés par Sébastien Curutchet



 
 
 
 
Partenaires

PlanetHoster
Ikoula