[VB] Ouverture d'un fichier excel en lecture

Ouverture d'un fichier excel en lecture [VB] - Programmation

Marsh Posté le 06-09-2001 à 14:06:43    

Bon ben voila....
 
Merci ;)

Reply

Marsh Posté le 06-09-2001 à 14:06:43   

Reply

Marsh Posté le 06-09-2001 à 14:15:19    

ben tu peux pas directement :)
 
Une solution est de faire comme ça :
 
dim machin as Excel.Workbook
 
Set machin = CreateObject("c:\toto.xls" )
 
et après tu peux utiliser des commandes VBA Excel pour lire manipuler ton classeur :
 
machin.Sheets("Feuil1" ).Select  
 
ect ..

Reply

Marsh Posté le 06-09-2001 à 14:26:26    

Ok
Mais dans le cas que tu me donnes, est ce que le fichier C:\toto.xls existe ?
Ou est ce qu'il est cree ?
 
J'ai reussi a lire un fichier excel mais celui ci doit etre ouvert, et c'est pas encore ce que je veux

Reply

Marsh Posté le 06-09-2001 à 15:50:19    

eupe

Reply

Marsh Posté le 06-09-2001 à 15:52:24    

en gros, si j'ai bien compris, tu veux ouvrir un fichier excel depuis ton appli VB. C'est bien ça ???

Reply

Marsh Posté le 06-09-2001 à 15:56:33    

Ben il faut que j'ouvre un fichier excel (mais il doit pas etre forcement visible).
C'est pour comparer des donnees.
J'ai deja la CommonDialog, tout ce qu'il faut.
 
Pour l'instant ca marche avec GetObject, mais il faut deja ouvrir le fichier excel a la main et ca craint un peu.
Et si tu le fermes trop tot ou un truc dans le genre ca deconne grave apres.
 
Bref, ouaip je veux l'ouvrir pour pouvoir lire les cells.

Reply

Marsh Posté le 06-09-2001 à 16:49:05    

bon alors de mémoire. y a longtemps que j'ai pas jouer avec OLE Automation, donc verifie quand même ce que je vais te donner.
 
tu ajoutes dans les references de ton projet :
Microsoft Excel 9.0 Object Library (version 2000 d'excel)
 
dim oExcel as Excel.Application
set oExcel = createobject("excel.application" )
 
pour ouvrir ton classeur excel
 
oExcel.workbooks.open "ton_chemin"
 
pour le rendre invisible
oExcel.visible = false
 
je sais pas si ça va t'aider

Reply

Marsh Posté le 06-09-2001 à 16:51:38    

ca devrait.
J'en etais pas loin, il me manquait juste la ligne avec .open
 
J'vais essayer ca

Reply

Marsh Posté le 06-09-2001 à 16:54:57    

Nickel ;)
En + apparemment je suis pas oblige de le rendre visible.
 
Encore un grand merci, comme d'hab ;)

Reply

Marsh Posté le 06-09-2001 à 16:57:19    

je te confirme. t'es pas obligé de le rendre visible.
 
par contre une fois fini oublie pas de détruire l'objet sinon Excel reste en mémoire et tu ne le vois pas.

Reply

Marsh Posté le 06-09-2001 à 16:57:19   

Reply

Marsh Posté le 06-09-2001 à 16:57:58    

Ben pour ca j'ai fait un Excel.Quit
Je pense que ca doit etre bon

Reply

Marsh Posté le 06-09-2001 à 17:03:35    

ça suffit pas.
il faut que libére la mémoire occupé par ton objet Excel.
parce qu'en fait la tu ferme Excel, d'accord, mais ton instance Excel existe toujours. L'orsque tu fais Excel.Quit, rien ne t'empeche derriere, avec ta même instance de réouvrir un autre classeur, donc lorsque tu quittes ton appli VB, ou lorsque tu es sùr de ne plus utilisé ton objet :
 
set oExcel = nothing
 
chais pas si j'ai été clair sur ce coup là ;)

Reply

Marsh Posté le 06-09-2001 à 17:12:48    

Ben encore heureux que j'ai fait du Win32 sinon j'aurai rien cale au niveau instance mais la ca va ;)
 
J'me remet au travail  
 
;)

Reply

Marsh Posté le 06-09-2001 à 20:15:38    

exact, tu utilises le composant COM EXCEL
salut

Reply

Marsh Posté le 06-09-2001 à 21:02:35    

l'incovenient est que si tu distrib ton prog, le client devra avoir excel d'install.
enfin je c pas si c que tu veux faire...

Reply

Marsh Posté le 07-09-2001 à 08:09:32    

Ben en fait c'est un prog a developper en interne.
Le client nous envoie ca base de donnees sous Access, j'ai deje fait un prog qui recupere ce qu'on veut et qui le met sous une feuille Excel, maintenant il faut la retravailler, et ensuite on renvoie une feuille excel

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed