Macro pour imprimer plages spécifiées

melba

XLDnaute Occasionnel
Bonjour,

comment indiquer dans une macro que seules certaines plages doivent être imprimées?

Par exemple :

1) la plage A1:G11 doit toujours être imprimée

2) dans la plage A12: G58 uniquement les lignes comportant des montants en colonne B


et ceci toujours en noir et blanc?

Je souhaiterais que les données figurent en "continu" ( bien sûr si c'est dans la capacité de la page) et non sur plusieurs pages comme c'est le cas actuellement lorsque je fais une impression "manuelle" en sélectionnant les plages voulues .


Merci pour votre aide

@
 

Pièces jointes

  • Test imprimer plages choisies.xlsm
    11.9 KB · Affichages: 48

melba

XLDnaute Occasionnel
Re : Macro pour imprimer plages spécifiées

Bonjour,

J'ai mis le code de Job 75 dans mon fichier mais ça ne fonctionne pas.

Je précise par ailleurs que l'impression doit se faire en noir et blanc et pour cela j'avais ce code à l'origine associé à un bouton :

Sub Imprimer()
With ActiveSheet
.Unprotect "melba"
.PageSetup.BlackAndWhite = True
.PrintPreview

.PageSetup.BlackAndWhite = False
.Protect "melba"
End With
End Sub

Je joins à nouveau mon fichier dans lequel j'ai cette fois ci mis quelques données en colonne C.

Merci pour votre réponse.
 

Pièces jointes

  • imprimer plages spécifiées 2 .xlsm
    23.3 KB · Affichages: 27
  • imprimer plages spécifiées 2 .xlsm
    23.3 KB · Affichages: 32
  • imprimer plages spécifiées 2 .xlsm
    23.3 KB · Affichages: 38
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Macro pour imprimer plages spécifiées

salut

je ne comprends pas qu'un demandeur ne réalise pas qu"un fichier joint protégé (feuilles et macros) n'est d'aucune utilité !

Un essai de plus : macro copiée dans le Module de la Feuille 1 et lancée par double click sur H1
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
  If R.Address <> "$H$1" Then Exit Sub
  'filtre la plage sans les lignes de champs vides(en C)
  Range("B17:C" & Cells(Rows.Count, 3).End(xlUp).Row).AutoFilter Field:=2, Criteria1:="<>"
  ActiveSheet.PageSetup.BlackAndWhite = True
  Range("A1:G" & Cells(Rows.Count, 3).End(xlUp).Row).PrintPreview
  'remet en place
  Selection.AutoFilter
End Sub
 

job75

XLDnaute Barbatruc
Re : Macro pour imprimer plages spécifiées

Bonjour melba, salut Si...

Bof, ben si la feuille est protégée par le mot de passe melba, modifiez la macro Imprimer :

Code:
Sub Imprimer()
'désactive la protection pour les macros
ActiveSheet.Protect "melba", UserInterfaceOnly:=True
Application.EnableEvents = False
On Error Resume Next 'si aucune cellule vide
Range("C17:C" & Rows.Count).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
ActiveSheet.PageSetup.BlackAndWhite = True 'noir et blanc
[A:G].PrintOut
Rows.Hidden = False
Application.EnableEvents = True
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Imprimer(1).xls
    58.5 KB · Affichages: 40
  • Imprimer(1).xls
    58.5 KB · Affichages: 39
  • Imprimer(1).xls
    58.5 KB · Affichages: 34

melba

XLDnaute Occasionnel
Re : Macro pour imprimer plages spécifiées

Bonjour,

Je viens de mettre le code de Job75 du post 18dans mon fichier réel et c'est super.

Sub Imprimer()
'désactive la protection pour les macros
ActiveSheet.Protect "melba", UserInterfaceOnly:=True
Application.EnableEvents = False
On Error Resume Next 'si aucune cellule vide
Range("C17:C" & Rows.Count).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
ActiveSheet.PageSetup.BlackAndWhite = True 'noir et blanc
[A:G].PrintOut
Rows.Hidden = False
Application.EnableEvents = True
End Sub

Cependant je voulais vous signaler un petit hic : ma dernière ligne imprimée perd sa bordure.

Je chipote car c'est déjà très très bien .

Ce qui me ferait progresser beaucoup plus c'est encore un décryptage renforcé du code : je suis débutante et c'est dur pour moi .

Je n'arrive toujours pas à voir à quel endroit du code il est mentionné que la plage A1:G16 est obligatoirement imprimée.

Je réclame peu d'indulgence et de patience.

Si vous ne souhaitez pas poursuivre sur ce sujet je comprendrais car vous avez déjà beaucoup fait et je vous en remercie.

J'ai noté soigneusement le code pour une prochaine utilisation.

Merci encore

@+
 
Dernière édition:

Statistiques des forums

Discussions
312 765
Messages
2 091 905
Membres
105 097
dernier inscrit
Ayies