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

[VBA] Mise en Page

3 réponses
Avatar
HD
Bonjour,

Lorsque dans Excel sur une feuille, dans la mise en page, nous définissons
un ajustement des pages en largeur et en hauteur, Excel nous calcul de lui
même le pourcentage de zoom qui correspond à notre définition des pages...

Je voudrais donc récupérer ce pourcentage... mais comment faire ? Puisque si
nous avons :
ActiveSheet.PageSetup.FitToPagesWide = 1
ActiveSheet.PageSetup.FitToPagesTall = 1

Nous n'aurons pas la valeur du zoom via la commande :
ActiveSheet.PageSetup.Zoom
Car nous aurons systèmatiquement la valeur False...

Merci d'avance pour votre aide
--
@+
HD

3 réponses

Avatar
Benead
HD,

Une très ancienne réponse (12/2000) d'un ancien dieu de ce forum (nommé Laurent Longre, LL pour les intimes) à une
question similaire...Une solution "pas propre comme" il l'avait lui-même indiqué :

Sub Test()
Dim Zoom As Integer
Application.SendKeys "%t1{TAB}{CLEAR}~"
Application.Dialogs(xlDialogPageSetup).Show
Application.SendKeys "{TAB 3}^c{ESC}"
Application.Dialogs(xlDialogPageSetup).Show
With New DataObject
.GetFromClipboard
Zoom = .GetText(1)
End With
MsgBox " Zoom = " & Zoom
End Sub

Pour que cela fonctionne, il faut activer la référence "Microsoft Form 2.0 Object Library."

Le principal, c'est que cela fonctionne...

A+
Benead
XL2000

HD a écrit:
Bonjour,

Lorsque dans Excel sur une feuille, dans la mise en page, nous définissons
un ajustement des pages en largeur et en hauteur, Excel nous calcul de lui
même le pourcentage de zoom qui correspond à notre définition des pages...

Je voudrais donc récupérer ce pourcentage... mais comment faire ? Puisque si
nous avons :
ActiveSheet.PageSetup.FitToPagesWide = 1
ActiveSheet.PageSetup.FitToPagesTall = 1

Nous n'aurons pas la valeur du zoom via la commande :
ActiveSheet.PageSetup.Zoom
Car nous aurons systèmatiquement la valeur False...

Merci d'avance pour votre aide
--
@+
HD




Avatar
HD
Je connaissais une réponse "pas propre" utilisant le SendKey... mais pas
aussi complète que la tienne.

Merci de ton aide Benead.
--
@+
HD
Avatar
HD
Sub Test()
Dim Zoom As Integer
Application.SendKeys "%t1{TAB}{CLEAR}~"
Application.Dialogs(xlDialogPageSetup).Show
Application.SendKeys "{TAB 3}^c{ESC}"
Application.Dialogs(xlDialogPageSetup).Show
With New DataObject
.GetFromClipboard
Zoom = .GetText(1)
End With
MsgBox " Zoom = " & Zoom
End Sub


Pour ceux que le sujet intéresse... il m'a fallut faire quelques modifs en
supprimant certaines lignes car elles modifiaient la mise en page originelle
de la feuille :

Sub Test()
Dim Zoom As Integer
Application.Dialogs(xlDialogPageSetup).Show
Application.SendKeys "{TAB 3}^c{ESC}"
With New DataObject
.GetFromClipboard
Zoom = .GetText(1)
End With
MsgBox " Zoom = " & Zoom
End Sub



--
@+
HD