wdCell est un espece de #define que je ne connais pas
c'est un id
comment le connaitre ???
Version imprimable
wdCell est un espece de #define que je ne connais pas
c'est un id
comment le connaitre ???
J'ai reussi a fusionner les cellules voici le code.
pour avoir les valeur des constantes utilisees par VB, il faut utiliser le debugger en mode pas a pas, c'est pareil que BCB utiliser "F8" quand on pointe le curseur sur une variable il donne la valeur par exemple "wdCell = 12".Code:
1
2
3 myTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1"); myTable.OleFunction("Cell", 1, 1).OleFunction("Merge", myTable.OleFunction("Cell", 2, 3));
bien vu
merci pour le conseil de deboggage VB ;-)
pas mal
je me rends compte donc que l'extend ne marche pas sur des Cell mais plutot sur des caracteres
parce qu'il deplace tte la selection et non pas augmente la selection !Code:
1
2
3
4 Table1.OleFunction("Cell", 2, 1).OleFunction("Select"); vMSWord.OlePropertyGet("Selection").OleFunction("MoveRight", 12, 1, 1); // wdCell=12 vMSWord.OlePropertyGet("Selection").OlePropertyGet("Cells").OleFunction("Merge");
Sinon, regarde ds
c:\Program Files\Borland\BDS\4.0\include\vcl\word_xp.h
il y a ttes les d�finitions des
il suffit de l'inclure ds ton .cppCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 typedef enum WdUnits { wdCharacter = 1, wdWord = 2, wdSentence = 3, wdParagraph = 4, wdLine = 5, wdStory = 6, wdScreen = 7, wdSection = 8, wdColumn = 9, wdRow = 10, wdWindow = 11, wdCell = 12, wdCharacterFormatting = 13, wdParagraphFormatting = 14, wdTable = 15, wdItem = 16 } WdUnits;
#include <word_xp.h>
et �a marche :
ciaoCode:
1
2
3 Table1.OleFunction("Cell", 2, 1).OleFunction("Select"); vMSWord.OlePropertyGet("Selection").OleFunction("EndOf", wdColumn, wdExtend); vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Bold",true);
J'ai une solution pour selectionner quelques cellules y appliquer un format les fusionner.
Code:
1
2
3
4
5
6
7
8 myTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1"); myRange = vWDocument.OleFunction("Range", myTable.OleFunction("Cell", 1, 1) .OlePropertyGet("Range").OlePropertyGet("Start"), myTable.OleFunction("Cell", 1, 3).OlePropertyGet("Range").OlePropertyGet("End")); myRange.OlePropertyGet("Font").OlePropertySet("Bold",true); myRange.OlePropertyGet("Cells").OleProcedure("Merge");
m�me si c'est plus long que ta 1ere solution, on peut faire plusieurs choses dont le Merge, c'est Top
y a plus qu'� faire un tutorial ;-)
ciao et merci
Je te propose d'en faire un, avec comme plan :
les trucs classiques (ouvrir word, document, fermer, quitter, �a existe d�j� sur :http://lfe.developpez.com/Word/) mais surtout la manipulation de tableaux, fusion...
la mise en page, paragraphe, Font, Bold, couleurs,
masi surtout � chaque fois, la correspondance entre Range et Selection
y a des fonctions qu'on a ds Selection qu'on n'a pas ds Range particulierement ds les tableaux (exple je veux selectionner un bout de colonne ds un tableau pour lui changer de couleur, eh ben le Range me selectionne ttes les cellules entre les 2 avec start et end et seule la fonction suivante le permet
NB le #include <word_xp.h> facile bcp les choses !!!Code:
1
2
3 Table1.OleFunction("Cell", 2, C+6).OleFunction("Select"); vMSWord.OlePropertyGet("Selection").OleFunction("MoveDown", wdLine, 5, wdExtend); vMSWord.OlePropertyGet("Selection").OlePropertyGet("Font").OlePropertySet("Color", wdColorRed);
je pense qu'il est important ds le tutorail ou la FAQ de pr�ciser ces choses l�.
tu en penses quoi ?
on contacte GreyBird ?
Ciao
Lotfi
Tout un lot de fonctions a ete depose pour etre integre a la FAQ, il faudra certainement les retester afin de corriger d'eventuelle erreurs, et de completer les commentaires, je depose regulierement mes trouvailles, ainsi que celles d'autres "Forumeur".
cooooool,
alors � qd la publication !!!
ils pourraient le faire (meme en version beta ou � tester) !
et pour l'encapsulation ds des classes
style ce qu'on fait en VBA
�a pourrait donner :
Selection->Font->Color=wdColorRed;
au lieu de passer par du OleFunction et procedure, get set...
�a peut �tre pas mal aussi
tu sais pas si y'en a qui bossent la dessus ?
Ciao
LotfiB a ecrit:
Le code doit rester simple pour les gents peu experimentes, les programmeurs confirmes modifient le code a leur convenance, en BCB je ne pense pas qu'il y est grand monde.Citation:
cooooool,
alors � qd la publication !!!
ils pourraient le faire (meme en version beta ou � tester) !
et pour l'encapsulation ds des classes
style ce qu'on fait en VBA
�a pourrait donner :
Selection->Font->Color=wdColorRed;
au lieu de passer par du OleFunction et procedure, get set...
�a peut �tre pas mal aussi
tu sais pas si y'en a qui bossent la dessus ?
justement, l'encapsulation / classes sert � simplifier la syntaxe de l'OleWord !
�a reviendrai aussi simple que sous VBA pour Word
l'ennui est que sous BDS2006 y a pas de help dessus
faut que je regarde sur une ancienne machine ou j'avais BCB6 s'il ya le help sur les composdants office2000 et si borland ont tt encapsul�...
ciao