Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème sur zone d'impression

7 réponses
Avatar
Alex
Bonjour =E0 tous,

Je rencontre un probl=E8me sur une zone d'impression, et m'en explique.
Via un formulaire avec une Listbox, je voulais automatiser la zone
d'impression suite au r=E9sultat obtenu avec les filtres, et j'avais
=E9crit ceci :

ActiveSheet.PageSetup.PrintArea =3D [CY3].CurrentRegion.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=3D1, Collate:=3DTrue

Mon probl=E8me, c'est que le CurrentRegion prend aussi ma ligne de titre
et de choix filtre dans la zone d'impression (donc doublon d'edition
de la ligne de titre et edition des crit=E8res utilis=E9s + r=E9sultat de l=
a
recherche), alors que je souhaiterai qu'il ne prenne que ma ligne de
titre d'extraction et les donn=E9es.

Quelqu'un aurait il la solution =E0 mon probl=E8me.

Merci par avance de votre aide.
Bien Cordialement.
Alex

7 réponses

Avatar
MichD
Bonjour,

C'est une bonne habitude à prendre que d'éliminer la plage définie
après l'impression.

'--------------------------
with ActiveSheet
with .[CY3].CurrentRegion
.Parent.PageSetup.PrintArea = .Offset(1).Resize(.Rows.Count - 1).Address
.PrintOut Copies:=1, Collate:=True
.Parent.PageSetup.PrintArea = ""
End with
With ActiveSheet
'--------------------------




MichD
--------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Je rencontre un problème sur une zone d'impression, et m'en explique.
Via un formulaire avec une Listbox, je voulais automatiser la zone
d'impression suite au résultat obtenu avec les filtres, et j'avais
écrit ceci :

ActiveSheet.PageSetup.PrintArea = [CY3].CurrentRegion.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Mon problème, c'est que le CurrentRegion prend aussi ma ligne de titre
et de choix filtre dans la zone d'impression (donc doublon d'edition
de la ligne de titre et edition des critères utilisés + résultat de la
recherche), alors que je souhaiterai qu'il ne prenne que ma ligne de
titre d'extraction et les données.

Quelqu'un aurait il la solution à mon problème.

Merci par avance de votre aide.
Bien Cordialement.
Alex
Avatar
MichD
Oups ! la dernière ligne de code devait se lire : End with plutôt que With ActiveSheet


MichD
--------------------------------------------
"MichD" a écrit dans le message de groupe de discussion : j4qba1$7r4$

Bonjour,

C'est une bonne habitude à prendre que d'éliminer la plage définie
après l'impression.

'--------------------------
with ActiveSheet
with .[CY3].CurrentRegion
.Parent.PageSetup.PrintArea = .Offset(1).Resize(.Rows.Count - 1).Address
.PrintOut Copies:=1, Collate:=True
.Parent.PageSetup.PrintArea = ""
End with
With ActiveSheet
'--------------------------




MichD
--------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Je rencontre un problème sur une zone d'impression, et m'en explique.
Via un formulaire avec une Listbox, je voulais automatiser la zone
d'impression suite au résultat obtenu avec les filtres, et j'avais
écrit ceci :

ActiveSheet.PageSetup.PrintArea = [CY3].CurrentRegion.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Mon problème, c'est que le CurrentRegion prend aussi ma ligne de titre
et de choix filtre dans la zone d'impression (donc doublon d'edition
de la ligne de titre et edition des critères utilisés + résultat de la
recherche), alors que je souhaiterai qu'il ne prenne que ma ligne de
titre d'extraction et les données.

Quelqu'un aurait il la solution à mon problème.

Merci par avance de votre aide.
Bien Cordialement.
Alex
Avatar
Alex
Merci beaucoup Michel pour la solution, et le conseil d'effacer la
plage d'impression, ca m'évitera sans doute des conflits avec d'autres
zones d'impression.
Cordialement.
Alex
Avatar
Alex
Re bonjour,

Après revérification, le problème n'est pas résolu, cela m'imprime
toujours deux lignes de titre avec sa ligne de "critères".

De plus un nouveau problème vient à moi, au niveau du titre de
l'édition, j'ai écrit ceci :

With ActiveSheet.PageSetup
...
.CenterHeader = "ETAT RECAPITULATIF DU FICHIER VENTE -
EDITION PERSONNALISEE SELON CRITERE(S) :" & Chr(10) _
& " Immeuble : " & Me.RechIMMEUBLE.Value & " Propriétaire : "
& Me.RechPROP.Value & " Type de Lot : " & Me.RechLOT.Value & "
Statut : " & Me.RechSTATUT.Value & " N° de Regroupement : " &
Me.RechNUMGROUP.Value
...
End With

Et j'ai le message suivant :

Erreur d'excution '1004' :
Impossible de définir la propriété Center Header de la Classe
Pagesetup

Auriez vous la solution pour mes deux problèmes ?
Avec mes remerciements.
Alex
Avatar
MichD
Modifie la procédure comme ceci :

Pour ce qui est de "CenterHeader", il y a un "HIC" si tu fais la somme du
nombre de caractères de "LeftHeader" + "CenterHeader" + "RightHeader",
le total ne peut pas excéder plus de 255 caractères. À cette chaîne, il faut
soustraire un certain nombre de caractères utilisé par Excel lorsque tu utilises
un formatage particulier pour chaque section d'en-tête. Comme ne n'ai pas
la valeur de tes variables, je ne peux vérifier la longueur de la chaîne, tu n'as
qu'à utiliser ceci :

NbCaractere = Len("ETAT RECAPITULATIF DU FICHIER VENTE " & _
"- EDITION PERSONNALISEE SELON CRITERE(S) :" & Chr(10) _
& " Immeuble : " & Me.RechIMMEUBLE.Value & " Propriétaire : " & _
Me.RechPROP.Value & " Type de Lot : " & Me.RechLOT.Value & _
" Statut : " & Me.RechSTATUT.Value & " N° de Regroupement : " & _
Me.RechNUMGROUP.Value)


'--------------------------------------------
Sub test()
With ActiveSheet
.PageSetup.CenterHeader = "ETAT RECAPITULATIF DU FICHIER VENTE " & _
"- EDITION PERSONNALISEE SELON CRITERE(S) :" & Chr(10) _
& " Immeuble : " & Me.RechIMMEUBLE.Value & " Propriétaire : " & _
Me.RechPROP.Value & " Type de Lot : " & Me.RechLOT.Value & _
" Statut : " & Me.RechSTATUT.Value & " N° de Regroupement : " & _
Me.RechNUMGROUP.Value
With .Range("A1").CurrentRegion
.Offset(1).Resize(.Rows.Count - 1).PrintOut Copies:=1, Collate:=True
End With
End With
End Sub
'--------------------------------------------


MichD
--------------------------------------------
Avatar
Alex
Bonjour Michel,

Merci pour ta réponse. Par contre, je n'ai pas compris ou il faut que
je mette ta ligne de commande Nbcaractere dois je l'integrer avec ma
mise en page ?
Sinon en effet, entre le titre et mes variables, on dépasse les 250
caractères.
Merci d'avance pour ta réponse.
VBAlement, :-)
Alex
Avatar
MichD
Tu peux insérer ladite ligne de commande dans la procédure seulement pour effectuer un test.
Si tu te retrouves près du nombre de caractères limites et que le contenu des variables est
variable, il est possible qu'à l'occasion la limite soit atteinte et qu'une erreur
soit retournée. Au besoin, scinde ton texte que tu veux afficher en 2. Une partie
dans l'en-tête de la mise en page et une autre dans le pied de page. Le nombre
total de caractères dans le pied de page est soumis à la même exigence que
l'en-tête.



MichD
--------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :


Bonjour Michel,

Merci pour ta réponse. Par contre, je n'ai pas compris ou il faut que
je mette ta ligne de commande Nbcaractere dois je l'integrer avec ma
mise en page ?
Sinon en effet, entre le titre et mes variables, on dépasse les 250
caractères.
Merci d'avance pour ta réponse.
VBAlement, :-)
Alex