SERIEUXETCOOL
XLDnaute Occasionnel
Bonjour le Forum,
Je rencontre de nouveau un problème "bizarre". J'ai une feuille Excel (2007) qui contient des données. Sur cette feuille je place un graphique également. Ce graphique est positionné sur une plage de cellules bien définit via VBA (cf code plus bas)
Jusque la tout va bien.
Le problème survient lorsque j'essaie de faire en sorte que la largeur de la feuille Excel remplisse le plus possible l'écran du PC. Cela m'évite ainsi de devoir ajuster manuellement le zoom pour que sa soit optimisé. Ou alors quand on change de PC que la feuille reste optimisée même si l'écran a changé.
En cherchant sur le net je suis tombé sur le code suivant :
Et en effet ça fonctionne bien. Car la plage est zoomée au maximum de manière à ce que sa rentre dans mon écran.
Cependant...Mon graphique n'est plus centré sur les plage de cellules comme initialement demandé !!!
C'est trop moche, et je me demande quelle solution il me reste ? Le but étant donc de faire la même chose que "ActiveWindow.Zoom" mais en faisant en sorte que mon graphique reste toujours centré sur la plage de cellules.
Pour mieux illustrer mon problème, voici le code qui met en évidence ce "défaut" :
Je reste dans les parages pour plus d'infos si besoin est.
Merci à ceux qui me proposeront leurs idées et/ou leurs conseils.
Bien cordialement,
André
Je rencontre de nouveau un problème "bizarre". J'ai une feuille Excel (2007) qui contient des données. Sur cette feuille je place un graphique également. Ce graphique est positionné sur une plage de cellules bien définit via VBA (cf code plus bas)
Jusque la tout va bien.
Le problème survient lorsque j'essaie de faire en sorte que la largeur de la feuille Excel remplisse le plus possible l'écran du PC. Cela m'évite ainsi de devoir ajuster manuellement le zoom pour que sa soit optimisé. Ou alors quand on change de PC que la feuille reste optimisée même si l'écran a changé.
En cherchant sur le net je suis tombé sur le code suivant :
Code:
Range("A1:M5").Select 'Pour régler le zoom de la page pour que sa rentre complètement
ActiveWindow.Zoom = True
Et en effet ça fonctionne bien. Car la plage est zoomée au maximum de manière à ce que sa rentre dans mon écran.
Cependant...Mon graphique n'est plus centré sur les plage de cellules comme initialement demandé !!!
C'est trop moche, et je me demande quelle solution il me reste ? Le but étant donc de faire la même chose que "ActiveWindow.Zoom" mais en faisant en sorte que mon graphique reste toujours centré sur la plage de cellules.
Pour mieux illustrer mon problème, voici le code qui met en évidence ce "défaut" :
Code:
Public Sub aaaaa()
Sheets.Add 'Créé toujours un onglet de départ
Dim i As Long
For i = Sheets.Count To 1 Step -1 'On supprime tous les onglets sauf un
If Sheets(i).Name <> ActiveSheet.Name And Sheets(i).Visible = True Then
Sheets(i).Delete
End If
Next
Range("M5") = "MAISON"
Range("A1:M5").Select 'Pour régler le zoom de la page pour que sa rentre complètement
ActiveWindow.Zoom = True '=================> CETTE LIGNE QUI POSE PROBLÈME !!!
'------------------------------------------------------------------------------------------------------------------------
'Création des graphiques
'------------------------------------------------------------------------------------------------------------------------
Range("A1:A1").Select 'GRAPHIQUE NUMERO 1
ActiveSheet.Shapes.AddChart.Select 'Créer un graph
ActiveChart.SetSourceData Source:=Range("A1:B1") 'Ne rien changer
ActiveSheet.ChartObjects(1).Left = Range("F6").Left 'Positionnement de l'accroche
ActiveSheet.ChartObjects(1).Top = Range("F6").Top 'Positionnement de l'accroche
ActiveSheet.ChartObjects(1).Width = Range("F6:I15").Width 'Dimensionnement de la largeur
ActiveSheet.ChartObjects(1).Height = Range("F6:I15").Height 'Dimensionnement de la hauteur
End Sub
Je reste dans les parages pour plus d'infos si besoin est.
Merci à ceux qui me proposeront leurs idées et/ou leurs conseils.
Bien cordialement,
André
Dernière édition: