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

Sélection automatique de zone d'impression

1 réponse
Avatar
Bruno65
Bonjour à tous,

Dans un fichier que je transmets à des collègues pour qu'ils le
renseignent, je voudrais pouvoir, par un bouton, imprimer uniquement les
colonnes A à E, de la ligne 1 jusqu'à la dernière ligne contenant des
données, en excluant donc les suivantes, qui contiennent tout de même
des formules. (En clair je veux éviter d'imprimer toutes les pages si
seulement quelques lignes sont renseignées)

Je suis nouveau sur le forum et pas du tout compétent pour écrire du
code, mais je sais utiliser un module et faire une association avec un
bouton.
J'ai trouvé sur l'aide d'excelabo la contribution suivante, qui
pourrait, je pense, me suffire, mais cela ne fonctionne pas...
Pour info, je suis sous Office XP...

Comment définir la zone d'impression par VBA ?
Public Function Zone_Imp(ByRef HautGauche As String, ByRef ColDroite As
String,
ByRef NrLigne As Integer) As Boolean
' cette procedure determine une zone d'impression
'syntaxe : etat!=Zone_Imp(string1,string2,nbl) /
Zone_Imp("A1","J",30)
'string1 = adresse de la cellule en haut à gauche du cadre ex :A1
'string2 = nom de la colonne à l'extreme droite du cadre ex : J
'Nbl = numero de la derniere ligne en bas du cadre ex : 30
'renvoie TRUE si tout c'est bien passé

On Error GoTo Erreur_Zone_Imp
Dim
BasDroite As String 'va contenir l'adresse de la cellule en bas à droite
du cadre
Zone_Imp = False 'pour l'instant la zone n'est pas valide

BasDroite = ColDroite 'recuperer le nom de la colonne extreme droite
BasDroite = BasDroite + LTrim(Str$(NrLigne))
'creer l'adresse de la cellule en bas à droite du cadre
'version office 95
Range(HautGauche + ":" + BasDroite).Select 'selectionner la zone
ActiveSheet.PageSetup.PrintArea =Selection.Address

' version office 2000

'ActiveSheet.PageSetup.PrintArea = HautGauche + ":" + BasDroite '
"A1:J20"
valider la zone d'impression

Zone_Imp = True 'la fonction s'est bien deroulée
Exit Function
Erreur_Zone_Imp:
Zone_Imp = False 'la fonction a planté
End Function

Eric Rbt,
Ajouté ou modifié le 20/01/2001 (N°957)


merci infiniment de l'aide que vous pourrez m'apporter,

Bon week-end,

Bruno

1 réponse

Avatar
DJ9B
Bonjour Bruno65 !
A condition qu'il n'y a pas de ligne vide dans colonne A, tu peux essayer la
macro ci-dessous :
Sub ImprimCha()
Dim i As Integer
i = Range("A1").End(xlDown).Row
Range("A1:E" & i).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$E$" & i
With ActiveSheet.PageSetup
.PrintHeadings = False
.PrintGridlines = False
.CenterHorizontally = False
.CenterVertically = True
.Orientation = xlPortrait
.PaperSize = xlPaperA4
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
End Sub

--

www.dj9b.fr.st
et maintenant aussi :
http://dj9b.free.fr
"Bruno65" a écrit dans le message de
news:
Bonjour à tous,

Dans un fichier que je transmets à des collègues pour qu'ils le
renseignent, je voudrais pouvoir, par un bouton, imprimer uniquement les
colonnes A à E, de la ligne 1 jusqu'à la dernière ligne contenant des
données, en excluant donc les suivantes, qui contiennent tout de même
des formules. (En clair je veux éviter d'imprimer toutes les pages si
seulement quelques lignes sont renseignées)

Je suis nouveau sur le forum et pas du tout compétent pour écrire du
code, mais je sais utiliser un module et faire une association avec un
bouton.
J'ai trouvé sur l'aide d'excelabo la contribution suivante, qui
pourrait, je pense, me suffire, mais cela ne fonctionne pas...
Pour info, je suis sous Office XP...

Comment définir la zone d'impression par VBA ?
Public Function Zone_Imp(ByRef HautGauche As String, ByRef ColDroite As
String,
ByRef NrLigne As Integer) As Boolean
' cette procedure determine une zone d'impression
'syntaxe : etat!=Zone_Imp(string1,string2,nbl) /
Zone_Imp("A1","J",30)
'string1 = adresse de la cellule en haut à gauche du cadre ex :A1
'string2 = nom de la colonne à l'extreme droite du cadre ex : J
'Nbl = numero de la derniere ligne en bas du cadre ex : 30
'renvoie TRUE si tout c'est bien passé

On Error GoTo Erreur_Zone_Imp
Dim
BasDroite As String 'va contenir l'adresse de la cellule en bas à droite
du cadre
Zone_Imp = False 'pour l'instant la zone n'est pas valide

BasDroite = ColDroite 'recuperer le nom de la colonne extreme droite
BasDroite = BasDroite + LTrim(Str$(NrLigne))
'creer l'adresse de la cellule en bas à droite du cadre
'version office 95
Range(HautGauche + ":" + BasDroite).Select 'selectionner la zone
ActiveSheet.PageSetup.PrintArea =Selection.Address

' version office 2000

'ActiveSheet.PageSetup.PrintArea = HautGauche + ":" + BasDroite '
"A1:J20"
valider la zone d'impression

Zone_Imp = True 'la fonction s'est bien deroulée
Exit Function
Erreur_Zone_Imp:
Zone_Imp = False 'la fonction a planté
End Function

Eric Rbt,
Ajouté ou modifié le 20/01/2001 (N°957)


merci infiniment de l'aide que vous pourrez m'apporter,

Bon week-end,

Bruno