Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise en forme d'une plage de cellules

3 réponses
Avatar
Jocelyne
Bonjour à tous,

Je voudrais appliquer un format à une plage de cellules dans un tableau.
Voici les instructions.

Sub FmtPlgTbl()

Dim monTableau As table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

Set maPlage = ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End)

For Each maCellule In maPlage.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub

Si j’ajoute l’instruction maPlage.Cells.Merge pour fusionner les cellules,
ça fonctionne sur les cellules de la plage uniquement. Quant au formatage,
les cellules de la plage sont formatées mais aussi celles restantes de la
première colonne.

Si quelqu’un pouvait m’aider à y voir clair, j’apprécierais grandement. Merci.

En passant, est-ce que l’on peut nommer un tableau et utiliser son nom
plutôt que son index advenant l’ajout d’un tableau dans le document la macro
ne travaillerait pas sur le bon tableau?

3 réponses

Avatar
heureux-oli
Salut,

Non, on ne peut nommer un tableau.
Peut-être un jour ?


curieusement, le même code mais avec une sélection au lieu d'une plage donne
le résultat escompté.

Sub FmtPlgTbl()

Dim monTableau As Table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

'Set maPlage ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End).Select

For Each maCellule In Selection.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub




--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"Jocelyne" a écrit dans le message de
news:
Bonjour à tous,

Je voudrais appliquer un format à une plage de cellules dans un tableau.
Voici les instructions.

Sub FmtPlgTbl()

Dim monTableau As table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

Set maPlage = ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End)

For Each maCellule In maPlage.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub

Si j'ajoute l'instruction maPlage.Cells.Merge pour fusionner les cellules,
ça fonctionne sur les cellules de la plage uniquement. Quant au formatage,
les cellules de la plage sont formatées mais aussi celles restantes de la
première colonne.

Si quelqu'un pouvait m'aider à y voir clair, j'apprécierais grandement.
Merci.

En passant, est-ce que l'on peut nommer un tableau et utiliser son nom
plutôt que son index advenant l'ajout d'un tableau dans le document la
macro
ne travaillerait pas sur le bon tableau?




Avatar
Jocelyne
Bonjour,

J'ai fait le test et ça marche. Un gros merci.

Un seul petit détail; les cellules restent sélectionnées et je ne trouve pas
l'instruction qui permet de désélectionner cette plage. C'est sûr que je
pourrais ajouter une instruction de déplacement du point d'insertion mais
s'il y avait une instruction de désélection, ce serait mieux.

Merci de votre aide.

"heureux-oli" a écrit dans le message de
news:
Salut,

Non, on ne peut nommer un tableau.
Peut-être un jour ?


curieusement, le même code mais avec une sélection au lieu d'une plage
donne le résultat escompté.

Sub FmtPlgTbl()

Dim monTableau As Table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

'Set maPlage > ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End).Select

For Each maCellule In Selection.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub




--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"Jocelyne" a écrit dans le message de
news:
Bonjour à tous,

Je voudrais appliquer un format à une plage de cellules dans un tableau.
Voici les instructions.

Sub FmtPlgTbl()

Dim monTableau As table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

Set maPlage = ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End)

For Each maCellule In maPlage.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub

Si j'ajoute l'instruction maPlage.Cells.Merge pour fusionner les
cellules,
ça fonctionne sur les cellules de la plage uniquement. Quant au
formatage,
les cellules de la plage sont formatées mais aussi celles restantes de la
première colonne.

Si quelqu'un pouvait m'aider à y voir clair, j'apprécierais grandement.
Merci.

En passant, est-ce que l'on peut nommer un tableau et utiliser son nom
plutôt que son index advenant l'ajout d'un tableau dans le document la
macro
ne travaillerait pas sur le bon tableau?








Avatar
Jocelyne
Ok tout est beau. J'ai trouvé l'instruction collapse.
Merci encore pour tout

"Jocelyne" a écrit dans le message de
news:
Bonjour,

J'ai fait le test et ça marche. Un gros merci.

Un seul petit détail; les cellules restent sélectionnées et je ne trouve
pas l'instruction qui permet de désélectionner cette plage. C'est sûr que
je pourrais ajouter une instruction de déplacement du point d'insertion
mais s'il y avait une instruction de désélection, ce serait mieux.

Merci de votre aide.

"heureux-oli" a écrit dans le message de
news:
Salut,

Non, on ne peut nommer un tableau.
Peut-être un jour ?


curieusement, le même code mais avec une sélection au lieu d'une plage
donne le résultat escompté.

Sub FmtPlgTbl()

Dim monTableau As Table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

'Set maPlage >> ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End).Select

For Each maCellule In Selection.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub




--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"Jocelyne" a écrit dans le message
de news:
Bonjour à tous,

Je voudrais appliquer un format à une plage de cellules dans un tableau.
Voici les instructions.

Sub FmtPlgTbl()

Dim monTableau As table
Dim maCellule As Cell
Dim maPlage As Range

Set monTableau = ActiveDocument.Tables(1)

Set maPlage = ActiveDocument.Range(monTableau.Cell(2, 2) _
.Range.Start, monTableau.Cell(5, 3).Range.End)

For Each maCellule In maPlage.Cells
maCellule.Shading.BackgroundPatternColor = wdColorRed
Next maCellule

End Sub

Si j'ajoute l'instruction maPlage.Cells.Merge pour fusionner les
cellules,
ça fonctionne sur les cellules de la plage uniquement. Quant au
formatage,
les cellules de la plage sont formatées mais aussi celles restantes de
la
première colonne.

Si quelqu'un pouvait m'aider à y voir clair, j'apprécierais grandement.
Merci.

En passant, est-ce que l'on peut nommer un tableau et utiliser son nom
plutôt que son index advenant l'ajout d'un tableau dans le document la
macro
ne travaillerait pas sur le bon tableau?