OVH Cloud OVH Cloud

[VB] lire une cellule fusionnée

3 réponses
Avatar
Christophe
Bonjour,

mon programme doit lire une cellule fusionn=E9e dans un=20
tableau (le 2 premi=E8res cellules de la premi=E8re colonne=20
sont fusionn=E9es).=20
J'ai essay=E9 des truc comme : ActiveDocument.Tables(1).Rows
(1).Cells(1).Range.Text mais =E7a ne marche pas. J'ai=20
l'erreur suivante :
5991: Impossible d'acc=E9der =E0 des colonnes individuelles de=20
cette collection car le tableau poss=E8de des cellules=20
fusionn=E9es verticalement.

3 réponses

Avatar
Corona
Bonjour Christophe,
Faute d'en savoir plus, je te conseille de placer un 'On Error Resume
Next' juste avant ton instruction.
ActiveDocument.Tables(1).Rows(1).Cells(1).Range.Text
Philippe
"Christophe" a écrit dans le message
de news: 01e701c52b06$39e0d040$
Bonjour,

mon programme doit lire une cellule fusionnée dans un
tableau (le 2 premières cellules de la première colonne
sont fusionnées).
J'ai essayé des truc comme : ActiveDocument.Tables(1).Rows
(1).Cells(1).Range.Text mais ça ne marche pas. J'ai
l'erreur suivante :
5991: Impossible d'accéder à des colonnes individuelles de
cette collection car le tableau possède des cellules
fusionnées verticalement.
Avatar
Corona
Re Bonsoir Christophe,
Je n'avais pas lu tout ton code.
Sub LireTableau2()
Dim myTable As Table
Dim Row As Integer
Set myTable = ActiveDocument.Tables(2)
On Error Resume Next
For Row = 1 To myTable.Rows.Count
With myTable
MsgBox Mid(.Cell(Row, 1), 1, InStr(.Cell(Row, 1), Chr(13) &
Chr(7)) - 1)
End With
Next
End Sub
Philippe
"Christophe" a écrit dans le message
de news: 01e701c52b06$39e0d040$
Bonjour,

mon programme doit lire une cellule fusionnée dans un
tableau (le 2 premières cellules de la première colonne
sont fusionnées).
J'ai essayé des truc comme : ActiveDocument.Tables(1).Rows
(1).Cells(1).Range.Text mais ça ne marche pas. J'ai
l'erreur suivante :
5991: Impossible d'accéder à des colonnes individuelles de
cette collection car le tableau possède des cellules
fusionnées verticalement.
Avatar
Jean-Guy Marcil
Christophe was telling us:
Christophe nous racontait que :

Bonjour,

mon programme doit lire une cellule fusionnée dans un
tableau (le 2 premières cellules de la première colonne
sont fusionnées).
J'ai essayé des truc comme : ActiveDocument.Tables(1).Rows
(1).Cells(1).Range.Text mais ça ne marche pas. J'ai
l'erreur suivante :
5991: Impossible d'accéder à des colonnes individuelles de
cette collection car le tableau possède des cellules
fusionnées verticalement.


Essaie ça à la place:

MsgBox ActiveDocument.Tables(1).Range.Cells(1).Range.Text

Si tu as besoin de déterminer la présence de cellules fusionnées, compte le
numbre de rangées dans le tableau, puis le nombre de cellules dans la
colonne visée. S'il y a moins de cellules que de rangées, il y une fusion:

MsgBox ActiveDocument.Tables(1).Rows.Count
MsgBox ActiveDocument.Tables(1).Columns(1).Cells.Count

Mais si 4 cellules sur deux rangées et deux colonnes sont fusionnées alors
on ne peut pas compter, on doit utiliser la propriété Cells du Range du
tableau pour faire le tour de la collection des cellules.

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org