Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office

Microsoft Office Forum d'entraide sur Microsoft Office

Réponse
 
Outils de la discussion
Vieux 05/05/2008, 10h45   #1 (permalink)
Membre régulier
 
Date d'inscription: mars 2007
Messages: 120
Par défaut Accéder aux constantes via un objet OLE

Bonjour à tous,

A partir d'une application non office, via un objet OLE, je voudrais accéder aux constantes des application offices. Comme par exemple :

xlHAlignCenter pour centrer le texte dans une cellule Excel.

Ce que j'ai fait c'est:
Code :
This.iOLEExceL.XlHAlign.xlHAlignCenter
Mais ça ne marche pas.

Est-ce possible?

Merci d'avance.
__________________
mamid

Dernière modification par AlainTech ; 08/10/2008 à 22h37 Motif: Balises [code], pas [B]
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 14h22   #2 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 080
Par défaut

Oui, on peut le faire mais il faut déclarer les bibliothèques de chaque application pour les utiliser. On en peut utiliser une constante Excel avec un objet Word.

En Word par exemple :
Code :
 
Sub testXL()
Dim xlApp As New Excel.Application
Dim xlWb As Excel.WorkBook
Dim xlWs As Excel.WorkSheet
 
Set xlWb = xlApp.WorkBooks.Add
Set xlWs = xlWb.WorkSheets(1)
xlApp.Visible = True
 
xlWs.Cells(1, 1).HorizontalAlignment = xlCenter
 
 
End Sub
 
 
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 18h21   #3 (permalink)
Membre régulier
 
Date d'inscription: mars 2007
Messages: 120
Par défaut

Je pense que dans un objet Office on peut utiliser ces constantes. Mais, moi, mon but c'est d'appeler ces constantes dans un objet non office, en Java ou en PB par exemple en utilisant l'objet OLE.

La solution que j'ai trouvé c'est de redéfinir toutes ces constantes dans une classe définissant un objet ELE Excel.

Est-ce la meilleure solution? je ne sais!
__________________
mamid

Dernière modification par AlainTech ; 06/05/2008 à 20h31 Motif: Suppression de la citation
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 19h49   #4 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 080
Par défaut

Je pense que tu devrais poser ta question dans le forum Java.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/05/2008, 09h24   #5 (permalink)
Responsable MSOffice

 
Avatar de Maxence HUBICHE
 
Date d'inscription: juin 2002
Localisation: Argenteuil (95)
Messages: 3 560
Par défaut

Si tu référencies la bibliothèques du dois accéder à toutes les constantes ! Elle ont une portée publique, et donc sont forcément visible si tu as instancié ton objet en early binding .
Par contre, si tu le déclare en Objet non typé, parce que tu ne mets pas de référence à la bibliothèque concernée, tu dois effectivement retaper toutes tes constantes à la mano dans ta classe... c'est vrai.
__________________
MVP Office Systems - Access
Je ne réponds pas aux questions techniques par MP

surtout ne cliquez pas >>là<< je vous aurai prévenu !
Profil LinkedIn <=> Viadeo
Pour une formation de qualité : 1formaxion
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 18h37   #6 (permalink)
Membre régulier
 
Avatar de dj_benz
 
Date d'inscription: octobre 2002
Localisation: Montpellier
Âge: 27
Messages: 124
Par défaut

Bonjour,

Je cherche moi aussi comment accéder aux constantes d'Excel, et comment les utiliser via OLE, en C++.

Ce que je cherche à faire est simple, et a été cité plus haut:
Code :
xlWs.Cells(1, 1).HorizontalAlignment = xlCenter
J'ai donc, comme conseillé plus haut, redéfini la variable xlCenter comme ceci:
Code :
#define xlCenter  0xFFFFEFF4
Mais je suis bloqué sur la façon d'affecter ma valeur à la propriété HorizontalAlignment.

Voilà mon code:
Code :
xlWs.OlePropertyGet("Cells",1,1).OlePropertySet("HorizontalAlignment",xlCenter);
Je n'ai pas d'erreur de compil, mais une erreur à l'exécution qui me dit le plus simplement du monde "une exception s'est produite", sans plus de détails...

Ma constante est-elle mal définie, ou m'y prends-je mal pour affecter la valeur à la propriété?

Merci d'avance.
__________________
Benz
______________________________________________________________
Software is like sex: it's better when it's free. Linus Torvalds.
Le savoir est la seule matière qui s'accroit quand on la partage. Socrate.
dj_benz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 18h52   #7 (permalink)
Membre régulier
 
Avatar de dj_benz
 
Date d'inscription: octobre 2002
Localisation: Montpellier
Âge: 27
Messages: 124
Par défaut

Re,

Je viens de trouver tout seul le problème:

Je ne sais pas du tout pourquoi, mais il faut initialiser la variable xlCenter à la valeur:
Code :
#define xlCenter -4108
au lieu de
Code :
#define xlCenter 0xFFFFEFF4
(qui est pourtant son complément à deux).

Peut-être à cause du nombre de bits sur lequel sont codés les int de base... Il faudrait peut -etre rajouter des FFFF...

Bref, le -4108 fonctionne (pour moi).
__________________
Benz
______________________________________________________________
Software is like sex: it's better when it's free. Linus Torvalds.
Le savoir est la seule matière qui s'accroit quand on la partage. Socrate.
dj_benz est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide