Titrer un document selon son type d'impression

libellule85

XLDnaute Accro
Bonjour le forum,

J'ai trois sortes d'impression (donc 3 macros différentes) pour un même document, et je voulais donc savoir comment faire pour ajouter un titre au document selon l'impression choisie.
D'avance merci pour vos réponses
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Tritrer un document selon son type d'impression

Bonjour libellule85,

Désolé, mais ta question est un peu vague.

Je dirais qu'il suffit d'ajouter une ligne dans chaque macro pour modifier le titre selon l'impression choisie. Mais comment doit être défini ce titre ? Comment fais-tu appel à ces macros ?

A défaut de ton fichier, pourrais-tu au moins joindre le détail des macros ?

A te lire.

Cordialement.
 

libellule85

XLDnaute Accro
Re : Titrer un document selon son type d'impression

Bonjour Papou-net,

Tout d'abord je lance mes macros à partir de boutons qui se trouvent sur un onglet personnalisé du Ruban d'où le "ByVal control As IRibbonControl" qui se trouve dans la parenthèse.
trouves ci-dessous mes 3 macros :

Concerne l'édition seulement des chèques non débités
Code:
Sub ImpressionNonDebites(ByVal control As IRibbonControl)
Dim L As Byte
 Application.ScreenUpdating = False
 For L = 3 To 147
     Rows(L).Hidden = Application.CountA(Rows(L)) = 0 Or Cells(L, "F").Value <> ""
 Next L
 ActiveSheet.PrintPreview
 Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
     Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
     Rows("3:147").Hidden = False
 Application.ScreenUpdating = True
 Range("A3").Select
End Sub

Concerne seulement l'édition des chèques débités
Code:
Sub ImpChequesDebites(ByVal control As IRibbonControl)
Dim L As Byte
 Application.ScreenUpdating = False
 For L = 3 To 147
     Rows(L).Hidden = Application.CountA(Rows(L)) = 0 Or Cells(L, "F").Value = ""
 Next L
 ActiveSheet.PrintPreview
 Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
     Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
     Rows("3:147").Hidden = False
 Application.ScreenUpdating = True
 Range("A3").Select
End Sub

Concerne l'ensemble des chèques émis (débités et non débités) :
Code:
Sub ImprimeAuto(ByVal control As IRibbonControl)
Dim i As Byte
 Application.ScreenUpdating = False
 For i = 1 To 147
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = True
 Next i
 Application.ScreenUpdating = True
 ActiveSheet.PrintPreview
 Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
      Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
 Application.ScreenUpdating = False
 For i = 1 To 147
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = False
 Next i
 Application.ScreenUpdating = True
End Sub

D'avance merci pour ton aide
 

Dranreb

XLDnaute Barbatruc
Re : Titrer un document selon son type d'impression

Bonjour tous.
... et pour modifier alors, ceci :
VB:
ActiveSheet.PageSetup.CenterHeader = "Partie centrale du titre"

P.S. Je n'avais pas vu votre réponse. L'instruction indiquée peut être mise devant les PrintPeview.
Pourquoi ne préférez vous pas utiliser le bouton "Imprimer" du l'aperçu avant impression ?

À +
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Titrer un document selon son type d'impression

Bonjour Dranreb,

RE : libellule85,

Je te propose de modifier tes macros ainsi :

Code:
Sub ImpressionNonDebites(ByVal control As IRibbonControl)
Dim L As Byte
 Application.ScreenUpdating = False
 For L = 3 To 147
     Rows(L).Hidden = Application.CountA(Rows(L)) = 0 Or Cells(L, "F").Value <> ""
 Next L
 With ActiveSheet
   .CenterHeader = "Chèques non débités"
   .PrintPreview
End With
Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
     Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
     Rows("3:147").Hidden = False
 Application.ScreenUpdating = True
 Range("A3").Select
End Sub

Sub ImpChequesDebites(ByVal control As IRibbonControl)
Dim L As Byte
 Application.ScreenUpdating = False
 For L = 3 To 147
     Rows(L).Hidden = Application.CountA(Rows(L)) = 0 Or Cells(L, "F").Value = ""
 Next L
 With ActiveSheet
   .CenterHeader = "Chèques débités"
   .PrintPreview
End With
Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
     Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
     Rows("3:147").Hidden = False
 Application.ScreenUpdating = True
 Range("A3").Select
End Sub

Sub ImprimeAuto(ByVal control As IRibbonControl)
Dim i As Byte
 Application.ScreenUpdating = False
 For i = 1 To 147
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = True
 Next i
 Application.ScreenUpdating = True
 With ActiveSheet
   .CenterHeader = "Chèques émis"
   .PrintPreview
End With
Select Case MsgBox("Voulez-vous imprimer votre document ?", vbYesNo + vbQuestion + vbDefaultButton1, "Confirmation d'Impression de Document")
      Case vbYes
      ActiveSheet.PrintOut
      Case vbNo
      End Select
 Application.ScreenUpdating = False
 For i = 1 To 147
     If Application.CountA(Rows(i)) = 0 Then Rows(i).Hidden = False
 Next i
 Application.ScreenUpdating = True
End Sub

Cordialement.
 

libellule85

XLDnaute Accro
Re : Titrer un document selon son type d'impression

Bonjour Dranreb, re-Papou-net,

@ Dranreb : merci pour ta réponse

@ Papou-net : la macro se met en erreur '438' "Propriété ou méthode non gérée par l'objet" et quand je clique sur débogage il stabilote
Code:
.CenterHeader = "Chèques débités"
 

Papou-net

XLDnaute Barbatruc
Re : Titrer un document selon son type d'impression

Bonjour Dranreb, re-Papou-net,

@ Dranreb : merci pour ta réponse

@ Papou-net : la macro se met en erreur '438' "Propriété ou méthode non gérée par l'objet" et quand je clique sur débogage il stabilote
Code:
.CenterHeader = "Chèques débités"

Boudiou, j'ai oublié une référence, il fallait lire :

Code:
.PageSetup.CenterHeader = "Chèques débités"

Dans les 3 macros bien évidemment.

Cordialement.

Edit : merci Dranreb
 

libellule85

XLDnaute Accro
Re : Titrer un document selon son type d'impression

Re Papou-net, Dranreb,

Merci beaucoup à tous les deux pour votre aide, celà fonctionne à merveille.

@Dranreb : c'est vrai tu as raison je pourrais utiliser le bouton "Imprimer" de l'aperçu mais j'avais crée le message lors de la création de la première macro et je l'ai laissé....

Bonne journée
 

libellule85

XLDnaute Accro
Re : Titrer un document selon son type d'impression

re le forum,

j'ai cherché sur internet pour pouvoir formater les entêtes (style gras, italiques etc...), j'ai trouvé ceci pour ceux que celà peut intéresser :

Sur le support Microsoft

J'ai essayé de rajouter ceci dans les macros du fil :

Code:
"&""arial,bold"

ce qui donne :

Code:
 .PageSetup.CenterHeader = "&""arial,bold""Votre Titre"

et celà fonctionne à merveille.

Bon Après midi à tous
 

libellule85

XLDnaute Accro
Re : Titrer un document selon son type d'impression

Re Dranreb,

N'étant vraiment pas un pro comme vous, je ne le savais pas ! Je découvre les choses au fur et à mesure de mes recherches et de l'aide que m'apporte cet excellent forum qu'est excel-downloads.com. En tous cas merci du renseignement.

Bon Après midi
 

Discussions similaires

Réponses
33
Affichages
2 K
Réponses
4
Affichages
186

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth