Sélectionner Zone Impression

  • Initiateur de la discussion hasardeux
  • Date de début
H

hasardeux

Guest
Salut,

J'ai un classeur avec plusieurs feuilles contenant chacune un tableau de dimensions différents.

Comment en utilisant VBA, définir la zone d'impression pour chaque feuille avec les conditions suivantes:

- Lignes à répéter: $1:$5
- Colonnes à répéter: $B:$C
- A partir de la cellule D6:

* vers la droite sélectionner jusqu'à où une des cellules de la ligne 5 (D5, E5, F5, .....) est vide (si par exemple M5 est vide ==> alors la sélection serait D6:L6)

* vers le bas, sélectionner jusqu'à où une des cellules de la colonne C (C6, C7, C8, ....) est vide (si par exemple C19 est vide ==> alors la sélection serait D6:D18)

Comme résultat de la plage à sélectionner selon les deux exemples, j'aurais : D6:L6 + D6:D18 = D6:L18

J'espère être précis

Merci par avance de votre aimable aide et conseils
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir hasardeux,

Peut-être peux-tu essayer la procédure suivante :
Sub DefZoneImprim()
Dim LMax As Long, CMax As Integer
Dim
Plage As Range

      With ActiveSheet
            CMax = .Cells(5, 256).End(xlToLeft).Column
            LMax = .Cells(65536, 3).End(xlUp).Row
           
            .PageSetup.PrintArea = .Range(.Cells(6, 4), Cells(LMax, CMax)).Address
            .PageSetup.PrintTitleRows = '$1:$5'
            .PageSetup.PrintTitleColumns = '$B:$C'
      End With
End Sub
Cordialement,
 
H

hasardeux

Guest
Merci bcp pour votre aide.

Il me réside un seul probème:

En fait je voudrais pas que les colonnes incluses dans la plage d'impression soit réparties sur pluisieurs pages. Il faut que ça tient sur une seule page.

Par contre le nombre de ligne est illimité et peut avoir plusieurs pages

Comment inclure cette condition

NB: J'ai essayé par l'enregistreur MACRO, mais le problème persiste tjrs
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir hasardeux, le Forum,

Tu devrais pouvoir essayer avec ça :
Sub DefZoneImprim()
Dim LMax As Long, CMax As Integer
Dim
Plage As Range

      With ActiveSheet
            CMax = .Cells(5, 256).End(xlToLeft).Column
            LMax = .Cells(65536, 3).End(xlUp).Row
      End With
           
      With ActiveSheet.PageSetup
            .PrintArea = ActiveSheet.Range(.Cells(6, 4), Cells(LMax, CMax)).Address
            .PrintTitleRows = '$1:$5'
            .PrintTitleColumns = '$B:$C'

            .FitToPagesWide = 1
            .FitToPagesTall = False
      End With
End Sub
Cordialement,
 

Discussions similaires

Réponses
5
Affichages
218
Réponses
26
Affichages
855
Réponses
15
Affichages
792
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 355
Messages
2 087 553
Membres
103 588
dernier inscrit
Tom59300Tom