Ajuster une feuille Excel automatiquement en fonction de la largeur des colonnes

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 :

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:

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Ajuster une feuille Excel automatiquement en fonction de la largeur des colonnes

Personne n'a de solutions ou de petites idées pour me conseiller ?

Je tourne un peu en rond à cause de ce détail.

Si je ne suis pas clair, demandez et je reformulerais différemment.

Merci à ceux qui oseront^^


André
 

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Ajuster une feuille Excel automatiquement en fonction de la largeur des colonnes

Je viens de faire varier manuellement le niveau de zoom avec le code suivant :


Code:
Range("A1:M5").Select 'Pour régler le zoom de la page pour que sa rentre complètement
    ActiveWindow.Zoom = 150 '=================> CETTE LIGNE QUI POSE PROBLÈME !!!



En faisant varier la valeur de zoom, je viens de me rendre compte que pour certaines valeurs, mon graphique n'est plus centré sur sa plage "F6:I15" et que pour d'autre il l'est parfaitement.

Par exemple les valeurs "130,135,140" fonctionnent tandis que la valeur 133% me fait décaler mon graphique.

????

De plus,

Ce que je ne comprends pas, c'est que si j'impose par vba un facteur de zoom de 140% alors j'ai ma feuille qui est bien ajustée au niveau du zoom, et le graphique parfaitement centré.

Si manuellement je vais mettre la valeur du zoom de la feuille à 133%; alors le graphique reste attaché au cellules. Alors que la valeur 133% par vba décale le graphique.

C'est à ni rien comprendre. Qu'est ce qui provoque tout ça ?

André
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 351
Membres
102 871
dernier inscrit
Maïmanko