[VBA] Mise en Page

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Benead
Le #4446791
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




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

Merci de ton aide Benead.
--
@+
HD
HD
Le #4445521
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

Publicité
Poster une réponse
Anonyme