Importer et exporter avec excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 107 188 fois - Téléchargée 42 fois

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

Ajouter un commentaire

Commentaires

trolix
Messages postés
13
Date d'inscription
mercredi 12 juin 2002
Statut
Membre
Dernière intervention
23 juin 2007

Ce code est super!!!! ça marche nickel! T'es le meilleur Trolix!!!!
trolix
Messages postés
13
Date d'inscription
mercredi 12 juin 2002
Statut
Membre
Dernière intervention
23 juin 2007

Notez moi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
apys
Messages postés
1
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 avril 2003

Pas mal du tout ! ce code va bien m'aider, ceci dit g du mettre un SET devant la variable "fichier" pour l'importation ....
merci a toi :)
sadikenpanik
Messages postés
4
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
21 janvier 2004

Kler tro nikel ce code !!
Mais il faut pour mon projet que je puisse faire défiler dans une listbox (combobox ou autre) toutes les cellules A1 de chaque fichier excel...
Est ce que c possible et dans ce cas est ce que kelkun ou l'ingénieux Trolix peut m'aider !!?? Merci d'avance
cs_Desesperados
Messages postés
11
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

idem le code est nikel mais comme sadikenpanik je dois mettre mes cellules ds une liste box et les utiliser comme des liens vers une otre list box

alors need assistance ^^

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.