Rechercher : dans
Par :

Gestion de la taille des graphiques Excel VBA

Dernière réponse le 22 avr 2008 à 22:15:33 FloM73, le 13 avr 2008 à 11:41:27 
 Signaler ce message aux modérateurs

Bonjour,

J'ai fait un programme qui génère plusieurs graphiques mais ils se retrouvent tous empilés les uns sur les autres à une taille décidée par Excel. Comment faire pour :
- leur donner la taille que je veux (taille externe + taille de la zone du graphique) ?
- les ranger tous bien comme il faut les uns au dessous des autres ?

Par macro je n'arrive qu'à trouver des instructions qu'en relatif mais je voudrais leur donner toujours la même taille et la même place. Pour info en cas de besoin : j'ai 3 onglets avec chacuns 6 graphiques.

Question complémentaire :
Je donne le titre au graphique par programme et pour que ca soit plus beau j'aimerai sauter une ligne. Pour l'instant j'ai écrit : activechart....Titre = NomService & "-" & NomJour.
Y-a-t-il un code à mettre à la place du "-" pour avoir un saut de ligne ?

Si quelqu'un avait un peu de temps pour me répondre ce serait très gentil,
Florence.

Configuration: Windows XP
Internet Explorer 6.0

1

dantes88, le 21 avr 2008 à 11:03:19

SAlut,

As tu trouvé une solution car je voudrais faire la même chose et je bloque...


merci

Répondre à dantes88

2

 flom73, le 22 avr 2008 à 22:15:33
  • +2

Bonjour,
Je me suis dépatouillée comme j'ai pu. Ce n'est probablement pas la solution des puristes mais ça peut peut-être t'aider.

J'ai créer mes graphiques puis les ai mis en forme 1 à 1 avec cette petite procédure :

Sub TaillePositionGraphique(QuelleFeuille)
Dim Cible As Integer
Dim i As Integer

For i = 1 To 7 'Appels les 7 graphiques Graphique1, Graphique2....C'est mieux de leur donner un nom plutôt que de prendre le nom Excel mais je ne sais pas faire.
ActiveWorkbook.Sheets(QuelleFeuille).Select

' Positionne les graphiques
Cible = 24 + (i - 1) * 11 'Calcule le numero de ligne ou je veux mettre chaque graphique
ActiveSheet.Shapes("Graphique " & i).Left = Range("A" & Cible).Left 'Positionnement Horizontal
ActiveSheet.Shapes("Graphique " & i).Top = Range("A" & Cible).Top 'Vertical

'Definit la taille du graphique.
ActiveSheet.Shapes("Graphique " & i).ScaleWidth 1.4, msoFalse, msoScaleFromTopLeft 'Largeur
ActiveSheet.Shapes("Graphique " & i).ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft 'Hauteur
Next i
End Sub

Bonne soirée,
Florence.

Répondre à flom73