VB Word automation - fusionner 2 cellules d'une table
3 réponses
Didier
Bonjour
mon problème est résumé dans le titre.
j'ai un document Word avec plusieurs tables.
comment puis je faire pour fusionner à partir de VB (pas VBA)
les cellules de
table x (x = n° d'ordre de la table)
ligne i (i = n° de la ligne dans la table)
colonne j,k (j = colonne de départ, k=colonne d'arrivée)
A priori il s'agit d'utiliser Selection et Range mais je n'y comprends rien.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'Didier' nous a écrit ...
mon problème est résumé dans le titre. j'ai un document Word avec plusieurs tables. comment puis je faire pour fusionner à partir de VB (pas VBA) les cellules de table x (x = n° d'ordre de la table) ligne i (i = n° de la ligne dans la table) colonne j,k (j = colonne de départ, k=colonne d'arrivée)
A priori il s'agit d'utiliser Selection et Range mais je n'y comprends rien.
En VBA vous n'avez pas besoin d'utiliser Selection Un Range est simplement une partie continue d'un document Selection n'est qu'un Range particulier : celui sélectionné.
Ainsi le contenu de la cellule ligne 2, colonne 3 du 2ème tableau est: ActiveDocument.Tables(2).Cell(2,3).Range vous n'êtes pas obligé de le sélectionner ActiveDocument.Tables(2).Cell(2,3).Select
Mais pour fusionner des cellules vous n'avez même pas besoin d'utiliser le Range des cellules : la méthode Merge s'applique sur les objets Cell directement.
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4) il vous suffit d'écrire : With ActiveDocument.Tables(2) .Cell(2, 3).Merge .Cell(3, 4) End With
Est-ce plus clair ?
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER
Bonjour !
'Didier' nous a écrit ...
mon problème est résumé dans le titre.
j'ai un document Word avec plusieurs tables.
comment puis je faire pour fusionner à partir de VB (pas VBA)
les cellules de
table x (x = n° d'ordre de la table)
ligne i (i = n° de la ligne dans la table)
colonne j,k (j = colonne de départ, k=colonne d'arrivée)
A priori il s'agit d'utiliser Selection et Range mais je n'y comprends
rien.
En VBA vous n'avez pas besoin d'utiliser Selection
Un Range est simplement une partie continue d'un document
Selection n'est qu'un Range particulier : celui sélectionné.
Ainsi le contenu de la cellule ligne 2, colonne 3 du 2ème tableau est:
ActiveDocument.Tables(2).Cell(2,3).Range
vous n'êtes pas obligé de le sélectionner
ActiveDocument.Tables(2).Cell(2,3).Select
Mais pour fusionner des cellules vous n'avez même pas besoin
d'utiliser le Range des cellules : la méthode Merge s'applique
sur les objets Cell directement.
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4)
il vous suffit d'écrire :
With ActiveDocument.Tables(2)
.Cell(2, 3).Merge .Cell(3, 4)
End With
Est-ce plus clair ?
Anacoluthe
« Tout est difficile avant d'être simple. »
- Thomas FULLER
mon problème est résumé dans le titre. j'ai un document Word avec plusieurs tables. comment puis je faire pour fusionner à partir de VB (pas VBA) les cellules de table x (x = n° d'ordre de la table) ligne i (i = n° de la ligne dans la table) colonne j,k (j = colonne de départ, k=colonne d'arrivée)
A priori il s'agit d'utiliser Selection et Range mais je n'y comprends rien.
En VBA vous n'avez pas besoin d'utiliser Selection Un Range est simplement une partie continue d'un document Selection n'est qu'un Range particulier : celui sélectionné.
Ainsi le contenu de la cellule ligne 2, colonne 3 du 2ème tableau est: ActiveDocument.Tables(2).Cell(2,3).Range vous n'êtes pas obligé de le sélectionner ActiveDocument.Tables(2).Cell(2,3).Select
Mais pour fusionner des cellules vous n'avez même pas besoin d'utiliser le Range des cellules : la méthode Merge s'applique sur les objets Cell directement.
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4) il vous suffit d'écrire : With ActiveDocument.Tables(2) .Cell(2, 3).Merge .Cell(3, 4) End With
Est-ce plus clair ?
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER
Didier
Bonjour
Merci de cette réponse rapide et précise.
Petite question subsidiaire
la fusion des cellules a eu pour effet indésirable de centrer le texte Comment faire pour empecher cela ( de préférence ) ou pour cadrer le texte à gauche après fusion ( si impossible d'empécher le centrage )
Didier
ps: Ou puis je trouver des explications et exemples clairs me permettant de piloter Word ?
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4) il vous suffit d'écrire : With ActiveDocument.Tables(2) .Cell(2, 3).Merge .Cell(3, 4) End With
Est-ce plus clair ?
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER
Bonjour
Merci de cette réponse rapide et précise.
Petite question subsidiaire
la fusion des cellules a eu pour effet indésirable de centrer le texte
Comment faire pour empecher cela ( de préférence ) ou pour cadrer le
texte à gauche après fusion ( si impossible d'empécher le centrage )
Didier
ps: Ou puis je trouver des explications et exemples clairs me permettant
de piloter Word ?
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4)
il vous suffit d'écrire :
With ActiveDocument.Tables(2)
.Cell(2, 3).Merge .Cell(3, 4)
End With
Est-ce plus clair ?
Anacoluthe
« Tout est difficile avant d'être simple. »
- Thomas FULLER
la fusion des cellules a eu pour effet indésirable de centrer le texte Comment faire pour empecher cela ( de préférence ) ou pour cadrer le texte à gauche après fusion ( si impossible d'empécher le centrage )
Didier
ps: Ou puis je trouver des explications et exemples clairs me permettant de piloter Word ?
Pour fusionner dans le 2ème tableau les cellules (2,3) à (3,4) il vous suffit d'écrire : With ActiveDocument.Tables(2) .Cell(2, 3).Merge .Cell(3, 4) End With
Est-ce plus clair ?
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER
Anacoluthe
Bonjour !
'Didier' nous a écrit ...
Petite question subsidiaire la fusion des cellules a eu pour effet indésirable de centrer le texte Comment faire pour empecher cela ( de préférence ) ou pour cadrer le texte à gauche après fusion ( si impossible d'empécher le centrage )
Ah ?? En principe la fusion de cellules ne centre rien de plus dans Word (C'est dans Excel qu'il y a un bouton 'Fusionner et centrer')
Pour aligner à gauche le contenu de la cellule (2,3) on en revient au Range : .Cell(2,3).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
ps: Ou puis je trouver des explications et exemples clairs me permettant de piloter Word ?
Il n'y a rien de particulier à savoir pour l'Automation de Word !
Tout le modèle objet Word est décrit et commenté dans l'Aide.
Quand on fait une macro VBA dans Word on utilise implicitement le modèle objet Word. Quand on est en Automation de Word, c'est exactement la même syntaxe sauf qu'il faut être explicite sur l'application Word instanciée.
Je dirais qu'avant de se lancer dans une application pilotant Word le mieux est de se familiariser /dans Word/ avec les objets du modèle objet Word, leurs propriétés et leurs méthodes.
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER
Bonjour !
'Didier' nous a écrit ...
Petite question subsidiaire
la fusion des cellules a eu pour effet indésirable de centrer le texte
Comment faire pour empecher cela ( de préférence ) ou pour cadrer le
texte à gauche après fusion ( si impossible d'empécher le centrage )
Ah ?? En principe la fusion de cellules ne centre rien de plus dans Word
(C'est dans Excel qu'il y a un bouton 'Fusionner et centrer')
Pour aligner à gauche le contenu de la cellule (2,3)
on en revient au Range :
.Cell(2,3).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
ps: Ou puis je trouver des explications et exemples clairs me permettant
de piloter Word ?
Il n'y a rien de particulier à savoir pour l'Automation de Word !
Tout le modèle objet Word est décrit et commenté dans l'Aide.
Quand on fait une macro VBA dans Word on utilise implicitement
le modèle objet Word. Quand on est en Automation de Word, c'est
exactement la même syntaxe sauf qu'il faut être explicite
sur l'application Word instanciée.
Je dirais qu'avant de se lancer dans une application pilotant Word
le mieux est de se familiariser /dans Word/ avec les objets du
modèle objet Word, leurs propriétés et leurs méthodes.
Anacoluthe
« Tout est difficile avant d'être simple. »
- Thomas FULLER
Petite question subsidiaire la fusion des cellules a eu pour effet indésirable de centrer le texte Comment faire pour empecher cela ( de préférence ) ou pour cadrer le texte à gauche après fusion ( si impossible d'empécher le centrage )
Ah ?? En principe la fusion de cellules ne centre rien de plus dans Word (C'est dans Excel qu'il y a un bouton 'Fusionner et centrer')
Pour aligner à gauche le contenu de la cellule (2,3) on en revient au Range : .Cell(2,3).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
ps: Ou puis je trouver des explications et exemples clairs me permettant de piloter Word ?
Il n'y a rien de particulier à savoir pour l'Automation de Word !
Tout le modèle objet Word est décrit et commenté dans l'Aide.
Quand on fait une macro VBA dans Word on utilise implicitement le modèle objet Word. Quand on est en Automation de Word, c'est exactement la même syntaxe sauf qu'il faut être explicite sur l'application Word instanciée.
Je dirais qu'avant de se lancer dans une application pilotant Word le mieux est de se familiariser /dans Word/ avec les objets du modèle objet Word, leurs propriétés et leurs méthodes.
Anacoluthe « Tout est difficile avant d'être simple. » - Thomas FULLER