Ouverture d'un fichier excel en lecture [VB] - Programmation
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 ..
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
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 ???
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.
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
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
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
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.
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
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à
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
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...
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
Marsh Posté le 06-09-2001 à 14:06:43
Bon ben voila....
Merci