Importer et exporter avec excel

Contenu du snippet

Ce code permet d'extraire des données depuis les cellules d'un fichier excel ou d'y envoyer des données depuis une applilcation VB, tout ceci sans avoir à ouvrir le fichier "manuellement" (contrairement à la méthode linktopic).
Vous y trouverez également quelques commandes intéressantes pour la manipulation de fichiers excel.

11/04/05: mise à jour
le code que j'avais posté à l'origine était une bidouille que j'avais concocté pour les besoins d'un stage.
Ca m'avait bien dépanné mais j'avoue que c'était loin d'être stable.
Après plusieurs demandes (parfois sans réponse de ma part, je l'avoue) je me suis enfin décidé à mettre ça à jour.
Voilà donc la nouvelle mouture, en espérant que cela vous aide.

Le principe est simple: on crée une variable objet dans laquelle on affecte un fichier Excel, et après il ne reste plus qu'à la modifier au besoin.

Pour cela il faut d'abord ajouter dans les références (Projet --> Références) "Microsoft Excel 10.0 Object Library"

Source / Exemple :


Dim xls As Excel.Workbook        ' déclaration d'une variable objet de type classeur Excel
Dim var As ce_que_vous_voulez

Set xls = GetObject("monfichier.xls")   'instanciation de l'objet (qui devient ici le fichier excel indiqué)

' export de données
With xls
   .worksheets(1).range("B6").Value = "1"
   .worksheets(1).range("B18").Value = "2"
   .worksheets(1).range("A18").Value = "3"
End With

' worksheets(1) correspond à la feuille 1 du fichier Excel
' pour spécifier le nom d'une feuille mettre à la place sheets("nom de la feuille")

' import de données
var = xls.worksheets(1).range("C2").Value

' etc etc...
' après à vous d'adapter le code en fonction de vos besoin

' une fois que vous avez fini d'utiliser la variable xls, pensez à la détruire
Set xls = Nothing

' PS: le code ci-dessus utilise un fichier Excel déjà existant.
' Pour créer un fichier Excel à partir d'une appli VB voici la manip:

Dim xls as Excel.Application
Set xls = CreateObject("Excel.Application")   ' création d'une nouvelle instance vierge de l'application Excel

' après paramètrez le fichier comme bon vous semble.
' Voici quelques exemples    
xls.WindowState = xlMaximized     ' format plein écran
xls.Visible = True                ' visible à l'écran
xls.ShowWindowsInTaskbar = True   ' visible dans la barre de tâches
xls.DisplayFormulaBar = True      ' affichage de la barre de formule
xls.Caption = "Mon fichier Excel"
xls.Workbooks.Add     ' ajout d'un classeur Excel sinon vous aurez une instance d'Excel mais pas de classeur
xls.Worksheets(1).Name = "Feuille1"
xls.Worksheets(2).Name = "Feuille2"
xls.Worksheets(1).Range("D1").Font.Bold = True  ' la cellule D1 est en gras
xls.Worksheets(1).Columns("A:A").EntireColumn.AutoFit  'ajustement automatique de la colonne A
xls.Worksheets(1).PrintOut Copies:=1	' imprimer 1 copie de la feuille 1

' je vais pas tous les faire parce que les possibilitées sont énormes.
' une bonne astuce pour voir les commandes correspondant à ce que vous 
' souhaitez faire est de créer un fichier Excel, de lancer l'enregistrement  d'une macro, 
' d'exécuter les opérations voulues (changement police, ajustement colonne etc), 
' d'arrêter l'enregistrement de la macro et d'aller voir le code qui a été créé. Perso c'est
' comme ça que j'ai procédé.

Conclusion :


' PS: je précise que j'ai arrêté de programmer depuis pratiquement 2 ans donc il se
' peut que je laisse traîner des erreurs à droite à gauche, désolé si c'est le cas. Après
' c'est à vous de vous inspirer de ce code (ou pas d'ailleurs), de fouiner sur le net et
' surtout utilisez la librairie MSDN, elle m'a sauvé la mise plus d'une fois.

' Bon courage et bonne prog

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.