Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office
Microsoft Office Forum d'entraide sur Microsoft Office
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2008, 10h45   #1
Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 163
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 163
Points : 42
Points : 42
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
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 14h22   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
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 ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 18h21   #3
Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 163
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 163
Points : 42
Points : 42
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
mamid1706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 19h49   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
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 ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2008, 09h24   #5
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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.
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2008, 18h37   #6
Membre régulier
 
Avatar de dj_benz
 
Inscription : octobre 2002
Messages : 150
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2002
Messages : 150
Points : 81
Points : 81
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 00
Vieux 08/10/2008, 18h52   #7
Membre régulier
 
Avatar de dj_benz
 
Inscription : octobre 2002
Messages : 150
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2002
Messages : 150
Points : 81
Points : 81
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:
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 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h48.


 
 
 
 
Partenaires

Hébergement Web