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

position du titre d'un graphique

19 réponses
Avatar
Pascal
Bonjour
j'ai un grand nombre de graphique pour lesquel je dois modifier la
mise en forme tr=E8s souvent. J'ai donc r=E9alis=E9 des proc=E8dure VBA pour
r=E9aliser ce traitement.
Cependant, je coince sur le positionnement du titre du graphique en
VBA. Comment faire pour qu'il soit toujours centr=E9 par rapport =E0 la
largeur de la zone graphique.
Je sais trouver la largeur de la fen=EAtre (width) mais cela ne
s'applique pas au titre.
Y a t'il une solution en VBA ?
Par avance merci
Pascal

10 réponses

1 2
Avatar
Daniel
Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une feuille de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left + .PlotArea.Width /
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub

Cordialement.
Daniel
"Pascal" a écrit dans le message de news:

Bonjour
j'ai un grand nombre de graphique pour lesquel je dois modifier la
mise en forme très souvent. J'ai donc réalisé des procèdure VBA pour
réaliser ce traitement.
Cependant, je coince sur le positionnement du titre du graphique en
VBA. Comment faire pour qu'il soit toujours centré par rapport à la
largeur de la zone graphique.
Je sais trouver la largeur de la fenêtre (width) mais cela ne
s'applique pas au titre.
Y a t'il une solution en VBA ?
Par avance merci
Pascal
Avatar
Francois L

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une feuille de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left + .PlotArea.Width /
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub



Avatar
jps
peut-être suffirait-il, pour attirer l'attention de notre volatile MVP, de
mettre ZZ (comme on met HS) comme premières lettres de l'objet du post
ah! pourquoi ZZ? rien à voir avec l'endormissement mais plutôt avec le
zinzinulement ('tain que c'est dur à taper ce mot : je m'y suis repris à
trois fois...essayez au lieu de rigoler!!)
jps (qui inaugure)

"Francois L" a écrit dans le message
de news:

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une feuille
de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left + .PlotArea.Width
/
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub





Avatar
Daniel
Bonsoir.
Merci, mais c'est assez particulier comme genre de demande. Je ne pense pas
que ça puisse servir à grand monde.
Daniel
"Francois L" a écrit dans le message
de news:

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une feuille
de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left + .PlotArea.Width
/
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub





Avatar
Francois L
Bonsoir.
Merci, mais c'est assez particulier comme genre de demande. Je ne pense pas
que ça puisse servir à grand monde.


Bonsoir,

C'est assez particulier OK, mais c'est une question que je me suis déjà
posée et puis ça ne mange pas de pain suffit de mettre le code, pas
besoin de classeur exemple.

--
François L

Avatar
Francois L
peut-être suffirait-il, pour attirer l'attention de notre volatile MVP,
de mettre ZZ (comme on met HS) comme premières lettres de l'objet du post
ah! pourquoi ZZ? rien à voir avec l'endormissement mais plutôt avec le
zinzinulement ('tain que c'est dur à taper ce mot : je m'y suis repris à
trois fois...essayez au lieu de rigoler!!)
jps (qui inaugure)



Bonsoir Président,

Regardes en dessous, j'ai essayé :-)

--
François L

Avatar
Misange
:-) :-)
Extra ! je dois même pouvoir faire une règle de message pour détecter
les zz dans les titres de messages

mais imagine que j'avais déjà mis de côté cette macro

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

peut-être suffirait-il, pour attirer l'attention de notre volatile MVP,
de mettre ZZ (comme on met HS) comme premières lettres de l'objet du post
ah! pourquoi ZZ? rien à voir avec l'endormissement mais plutôt avec le
zinzinulement ('tain que c'est dur à taper ce mot : je m'y suis repris à
trois fois...essayez au lieu de rigoler!!)
jps (qui inaugure)

"Francois L" a écrit dans le
message de news:

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une
feuille de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left +
.PlotArea.Width /
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub








Avatar
Misange
si si ça peut tout à fait servir à d'autres
:-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonsoir.
Merci, mais c'est assez particulier comme genre de demande. Je ne pense pas
que ça puisse servir à grand monde.
Daniel
"Francois L" a écrit dans le message
de news:

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une feuille
de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left + .PlotArea.Width
/
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub









Avatar
Francois L
:-) :-)
Extra ! je dois même pouvoir faire une règle de message pour détecter
les zz dans les titres de messages

mais imagine que j'avais déjà mis de côté cette macro



Bonsoir Misange,

J'imagine bien sur mais quelquefois mon imagination me joue des tours :-)

--
François L

Avatar
Daniel
Alors je l'ai mise à disposition.
Daniel
"Misange" a écrit dans le message de news:
uO$
si si ça peut tout à fait servir à d'autres
:-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonsoir.
Merci, mais c'est assez particulier comme genre de demande. Je ne pense
pas que ça puisse servir à grand monde.
Daniel
"Francois L" a écrit dans le
message de news:

Bonsoir Daniel,

Joli...

Tu devrais proposer à Misange de le mettre sur excelabo.

--
François L


Bonsoir.
Essaie la macro suivannte (si tes graphiques sont des objets une
feuille de
données :

Sub CentrerLesTitres()
Dim co As ChartObject
For Each co In ActiveSheet.ChartObjects
With co.Chart
.ChartTitle.Left = .ChartArea.Width
.ChartTitle.Left = .ChartTitle.Left / 2
decal = .ChartArea.Width / 2 - (.PlotArea.Left +
.PlotArea.Width /
2)
.ChartTitle.Left = .ChartTitle.Left - decal
End With
Next
End Sub










1 2