Comment récupérer la valeur du facteur de zoom qu'excel utilise lorsqu'on demande un ajustement automatique des pages dans le menu mise en page ?
Une solution "pas propre"
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."
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."
Laurent Longre,
Ajouté ou modifié le 05/05/2007 (N°1821)
Ajouté ou modifié le 05/05/2007 (N°1821)
Est-il possible d'imprimer directement des chèques avec excel ?
Un classeur de Robert Etaix à télécharger
qui permet d'écrire les montants sur les chèques aux bon emplacements
et de les imprimer. Le paramétrage est prévu suivant la banque.
Cette astuce est illustrée dans ce classeur exemple :
re-cheque (téléchargé 5462 fois)
qui permet d'écrire les montants sur les chèques aux bon emplacements
et de les imprimer. Le paramétrage est prévu suivant la banque.
re-cheque (téléchargé 5462 fois)
Robert Etaix, (N°947)
J'ai fréquemment besoin d'imprimer en format paysage à 80% comment automatiser cela ?
Sub PaysageZoom()
Dim Pourcentage As Integer
On Error Resume Next
Pourcentage = InputBox("Tapez votre pourcentage (Exemple : 80)", "Choix du
pourcentage")
With ActiveSheet.PageSetup
.Orientation = xlLandscape
End With
ActiveWindow.Zoom = Pourcentage
End Sub
Tu n'as plus qu' à créer un bouton (Affichage/Barres
d'outils/Formulaire/Bouton) auquel tu associeras cette macro.
Dim Pourcentage As Integer
On Error Resume Next
Pourcentage = InputBox("Tapez votre pourcentage (Exemple : 80)", "Choix du
pourcentage")
With ActiveSheet.PageSetup
.Orientation = xlLandscape
End With
ActiveWindow.Zoom = Pourcentage
End Sub
Tu n'as plus qu' à créer un bouton (Affichage/Barres
d'outils/Formulaire/Bouton) auquel tu associeras cette macro.
Willy Gruner, (N°946)
Je voudrais imprimer une image en filigrane sur mon classeur
Sub ImpFiligrane()
'La Zone d'impression DOIT être préalablement définie
Dim ZoneImpr As Range
Set ZoneImpr = Range(ActiveSheet.PageSetup.PrintArea)
ZoneImpr.CopyPicture xlScreen, xlBitmap
ActiveSheet.Paste Destination:=ZoneImpr
ActiveWindow.SelectedSheets.PrintPreview
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Delete
End Sub
'La Zone d'impression DOIT être préalablement définie
Dim ZoneImpr As Range
Set ZoneImpr = Range(ActiveSheet.PageSetup.PrintArea)
ZoneImpr.CopyPicture xlScreen, xlBitmap
ActiveSheet.Paste Destination:=ZoneImpr
ActiveWindow.SelectedSheets.PrintPreview
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Delete
End Sub
Denny Campbell, (N°945)
Je recherche à mettre en couleur blanche le texte de la cellule A1 avant d'imprimer et à
remettre ce texte en noir automatiquement après. j'ai réussi à mettre en blanc avant
l'impression mais pas à remettre en noir après l'impression...
Comme je suppose que c'est seulement pour ce classeur
et pour cette feuille...
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveWorkbook.Name = ThisWorkbook.Name Then
If ActiveSheet.Name = "Feuil1" Then
Module1.imprimer
Cancel = True
Range("A1").Interior.ColorIndex = 6
End If
End If
End Sub
Dans un module standard:
Sub imprimer()
Application.EnableEvents = False
Range("A1").Interior.Font.ColorIndex = 2
ActiveSheet.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub
et pour cette feuille...
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveWorkbook.Name = ThisWorkbook.Name Then
If ActiveSheet.Name = "Feuil1" Then
Module1.imprimer
Cancel = True
Range("A1").Interior.ColorIndex = 6
End If
End If
End Sub
Dans un module standard:
Sub imprimer()
Application.EnableEvents = False
Range("A1").Interior.Font.ColorIndex = 2
ActiveSheet.PrintOut Copies:=1, Collate:=True
Application.EnableEvents = True
End Sub
Denis Michon, (N°944)
