begin process at 2012 02 16 12:06:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

object OLE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

object OLE

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

Membre Club
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

Membre Club
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ée dans : appli, excel, workbook, ferme, ole


Répondre à ce message

Sujets en rapport avec ce message

Réouverture d'un fichier excel créé via vb.net [ par domsig ] bonjour je crée une appli en vbnet 2008 qui produit entre autres des fichiers excel (j'ai excel 2007 sur mon pc). Dans le code de l'appli j'ai une li vb6 comment se passer d'un classeur excel [ par raynald31 ] Bonjour, comme à force de chercher partout je pense que je veux faire dans la complexité alors que ça doit être très simple pour que je ne le pense. a Problème déploiement application [ par Moundir76 ] Bonjour, après avoir developpé une appplication sur ma machine, j'aurais souhaité installer celle ci sur un serveur. Dans visual Studio je fais "Publi syntaxe workbook [ par matth72 ] Bonjour à tous Je suis en train de faire une routine pour le taf J'ouvre un fichier Excel avec un getopen pas de pb Après je récupère le nom de ce 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,254 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales