Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : object OLE [ Langages dérivés / VBA ] (xaeris)

mercredi 14 mai 2008 à 16:27:11 | object OLE

xaeris

bonsoir tout le monde !
j'ai un petit probleme en vba ...
j'ai codé une appli qui gére un fichier excel.
Quand l'appli est lancée, j'ouvre en meme temps le workbook excel, je fais toutes les modifs que je veux et quand je ferme l'appli ca ferme aussi excel...
maintenant je voudrais donner un acces libre a ce fichier ( c'est a dire que je rend le workbook visible), donc je fais un :
appexcel.visible = true

La personne fait les modifications qu'elle veut et ferme ensuite l'application excel avec la crois en haut a gauche :)
et la ca ferme mon workbook excel..., du coup quand je ferme l'appli ensuite ca me met un gros message d'erreur bien moche...

je voudrais savoir si quelqu'un a une idée de la facon dont je pourrais procéder pour arriver a faire ma conultation/modification.

j'avais penser a plusieurs choses:
-faire un objet OLE de mon workbook, de cette facon je pourrais fermer mon workbook avec un cmdbutton et donc configurer la fermeture comme je le veux.
- coder la croix excel pour mon workbook pour qu'elle ne ferme pas le workbook mais juste le rendre invisible avec une sauvegarde.

le problème étant que je débute en vba et que je ne suis pas vraiment doué

pour l'objet OLE j'ai deja codé ca :

Exel = CreateOLEObject("Excel.Application")
a = "C://......"
set wbexcel = excel.workbooks.open(a)
form1.ole1 = wbexcel
form1.ole1.visible = true


mais vb hurle a l'agonie :)

je voudrais savoir si vous auriez une solution a mon problème ( meme si je n'ai aps forcement été tres clair ) ou meme si vous pensez que c'est faisable, voire me donner un tuto correct sur les OLE, meme( on sait jamais ) me dire pourquoi mon code plante ( indice ca me selectionne CreateOLEObject lors du debogage ).

Je vous remercie par avance !!


mercredi 14 mai 2008 à 16:34:01 | Re : object OLE

jrivet

Membre Club
Salut,
Si tu souhaites piloter Excel depuis VB6 utlises la référence Microsoft Excel Object Library

Comment ouvrir un classeur Excel Vierge depuis VB6 (ceci en est un exemple d'utilisation mais l'idée est là)

@+: Ju£i€n
Pensez: Réponse acceptée

mercredi 14 mai 2008 à 16:35:07 | Re : object OLE

bigfish_le vrai

Salut,

tu pourrais peut etre juste gerer l'erreur

On Local Error Resume Next
Excel.Close False
if Err <> then Err.Clear

Mais je ne sais pas si marche jamais essayé

A+

mercredi 14 mai 2008 à 16:37:38 | Re : object OLE

mortalino

Membre Club
salut,

le mieux c'est de vérifier si ton fichier est encore ouvert,

si pas ouvert, :u ne vides que la mémoire de ton objet (set appexcel = nothing),
si ouvert, ferneture propre depuis ton appli

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

mercredi 14 mai 2008 à 17:16:14 | Re : object OLE

xaeris

ouai c'est uen bonne solution de tester si le fichier est ouvert, ce qui est embetant c'est qu'il va falloir que je teste ca pour toutes les modifs que je veux effectuer .

j'ai une appli qui possède plusieurs cmdbuttons.
Prenons un exemple :

j'ouvre mon appli, Excel s'ouvre avec mon workbook...
je clic sur l'un de mes cmdbuttons qui fait une execution automatique sur l'une de mes feuilles (Excel etant deja ouvert je n'ai besoin que d'activer la feuille utilisée ) je Save ma modification, puis je lance la consultation/modification, mon excel s'affiche et je fais des modifs dedans je ferme l'appli excel avec la croix. Je reviens sur mon apppli vba, si je veux refaire un traitement automatique, je dois d'abord vérifier que le fichier est ouvert et sinon, l'ouvrir.
j'ai actuellement 10 traitements possibles grace a mes cmdbuttons, il faudrait que je teste pour els 10 non ?  

mercredi 14 mai 2008 à 17:30:41 | Re : object OLE

mortalino

Membre Club
Tu places la verif dans une fonction à part de ta procédure, et tu fais appels a elle quand tu en as besoins.

Regarde du côté de l'API _lopen
Exemple ici :
http://www.codyx.org/snippet_ouvrir-fichier-word-ou-excel-est-ouvert-copie_313.aspx

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

mercredi 14 mai 2008 à 17:41:01 | Re : object OLE

xaeris

et meme :'(
je viens de m'apercevoir que excel ne fermais pas réellement le workbook sur le click de la crois, si vous voulez, il a été fermé, sans l'être vraiment c bizarre ...

du coup il faudrais que je parametre la croix de mon excel quelqu'un connais la commande ?

mercredi 14 mai 2008 à 17:49:12 | Re : object OLE

mortalino

Membre Club
Ca me semble vachement compliqué pour pas grand chose.

Si ton appli ne gere que le fichier Excel et rien d'autre, autant le faire en vba (le vb intégré à Excel).
Au pire, va dans le sens de bigfish_le vrai, avec une gestion d'erreur

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

mercredi 14 mai 2008 à 18:07:00 | Re : object OLE

bigfish_le vrai

pour la croix il y une solution ici

Sinon pour verifier si excel est encore ouvert tu peux faire ça

if Exel.Excel.XlOpen = 2 then msgbox "Excel est ouvert"

au fait une petite correction sur mon message precedent :

On Local Error Resume Next
Exel.Close False
if Err <> then Err.Clear

d'ailleur je te conseil de trouver un autre nom de variable cela evitera les confusions

A+

mercredi 14 mai 2008 à 18:09:34 | Re : object OLE

mortalino

Membre Club
p'tite correction

On Local Error Resume Next
Exel.Close False true 'sauvegarder les modifs, non ?
if Err <> 0 then Err.Clear

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA


1 2

Cette discussion est classé dans : appli, excel, workbook, ferme, ole


Répondre à ce message

Sujets en rapport avec ce message

OLE Excel [ par tricky ] Bonjour j'ai un besoin pressent de connaitre kle maniement de l'OLE graphique Excel pour un projet de simulation de circuit HFSi vous pouviez m'aiguil OLE Excel [ par glanoush ] Je cherche à accéder à un document Excel sans passer par un ActiveX et dans une page ASP (en code VBScript). Si quelqu'un à déjà réaliser se genre de OLE Several Excel Spreadsheets [ par Michelle ] Hello,I am working pn a program that needs to link to multiple Excel Spreadsheets and Charts. I really don't know how to do this, please provide help lancer une appli vba excel depuis vb? [ par canto11 ] si quelqu'un pouvais m'aider, si jamais vous avez une solution merci de me la faire parvenir.donc je disais peut-on lancer un programme vba excel qui Problème avec Excel 2000, avis aux expérimentés [ par Nicoooolas ] j'ai un problème urgent et grave : developpant sous win2000 et office 2000 et vb6, j'ai developpé une appli dans une de ses fonctions pilote Excel. po [?]KILL Processus excel.exe ??? [ par Steph73 ] Bonjour,mon appli met à jours des tableaux sous excel. Mais si le fichier en question est déjà ouvert, ça plante! Je souhaite donc KILLER tout process Copier/Coller entre deux appli Excel [ par Christelle ] Bonjour,J'essaie de copier une feuille de calcul excel d'une appli vers une autre par ce code. Un message d'erreur s'affiche : "L'indice n'appartient OLE + Excel : Aide pour premier pas ! [ par Stoomm ] Bonjour,Je souhaite faire des modifs sur une feuille excel a partir de VB avec un controle ole.Comment puis-je faire ???Si quelqu'un pouvait m'aider : Access et excel dans une appli [ par yreveill ] Bonjour,mon application utilise des bases de donnees Access MDB et desd fichiers Excel XLS pour imprimer des factures (et apercu avant impression).Qua


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.