Imprimer un classeur (vba-excel)

Imprimer un classeur (vba-excel) - VB/VBA/VBS - Programmation

Marsh Posté le 07-06-2007 à 15:12:47    

Salut la compagnie !
 
Je cherche à faire le truc le plus bête du monde à savoir imprimer la totalité d'un classeur qui contient 2 pages (en fait je voudrais l'aperçu avant impression).
Or la commande suivante ne donne pas le résultat voulu : Workbooks(1).PrintPreview. En fait cette commande me donne l'aperçu de la première page.
Le résultat est identique en avec activeworkbook ou thisworkbook.
 
D'où ma question : comment faire ?!
 
Je met la source entière pour voir si ça vient d'un truc que j'aurais dit au dessus.  
Merci de votre aide.
++
 
Private Sub Imprimer_Click()
 
UF_Main.Hide
Dim i As Integer, page As Integer
i = 1
 
For page = 1 To 2
    worksheets(page).Activate
     
    'cache les colonnes inutiles
    Columns("C" ).Hidden = True
    Columns("E:H" ).Hidden = True
 
     
    'largeur de colonne auto
    Columns("A:D" ).AutoFit
     
     
    'mise en page
    With worksheets(page).PageSetup
        .Orientation = xlLandscape
        .LeftFooter = "&D &T"
        .CenterHeader = "&B&18&A"
        .RightFooter = "&P/&N"
    End With
     
    'définie la zone d'impression
    Cells(1, 1).Activate
    worksheets(page).PageSetup.PrintArea = _
        ActiveCell.CurrentRegion.Address
         
         
    'annule tous les sauts de page
    Do
        i = i + 1
        Rows(i).PageBreak = xlPageBreakNone
    Loop While Cells(i, 1).Value <> "POUSSINS"
    i = 1
     
 
    'insère un saut de page entre les catégories
    Do
        i = i + 1
        If Cells(i, 1).Value = "0" Then
            i = i + 1
            Rows(i).PageBreak = xlPageBreakManual
            i = i + 2
        Else: i = i + 1
        End If
    Loop Until IsEmpty(Cells(i, 1)) = True
     
     
    'reinitialise i
    i = 1
     
Next page
worksheets(1).Activate
 
'aperçu avant impression du classeur
ActiveWorkbook.PrintPreview
 
End Sub


Message édité par binoua le 07-06-2007 à 15:17:15
Reply

Marsh Posté le 07-06-2007 à 15:12:47   

Reply

Marsh Posté le 07-06-2007 à 18:59:13    

par défaut, le printpreview te montre la page en cours de la feuille encours... tu veux voir la feuille 2 en printpreview ?

Reply

Marsh Posté le 07-06-2007 à 19:17:28    

oui en fait je veux voir toutes les feuilles d'un seul coup en printpreview
 
il me semble que c'est faisable avec la commande printout mais je gère pas bien la syntaxe

Reply

Marsh Posté le 07-06-2007 à 20:48:45    

c'est bon j'ai fini par trouver la syntaxe :

Code :
  1. ActiveWorkbook.PrintOut preview:=True


En revanche si quelqu'un sait comment imprimer seulement les 2 premières pages...
 
Merci d'avance


Message édité par binoua le 07-06-2007 à 20:49:38
Reply

Marsh Posté le 08-06-2007 à 00:56:35    

Via le macro recorder puis optimisation à la main ...

Reply

Marsh Posté le 08-06-2007 à 12:47:34    

cad... Le macro recorder c'est un outils de VBStudio ? Perso je développe simplement un macro excel ! Donc pas moyen autrement ?

Reply

Marsh Posté le 08-06-2007 à 14:13:35    

outils> macro> Nouvelle macro. puis tu fais ta manip'.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed