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,
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
--
dj9b@free.fr
www.dj9b.fr.st
et maintenant aussi :
http://dj9b.free.fr
"Bruno65" <bruno.vive@ac-toulouse.fr> a écrit dans le message de
news:OonXHhUwFHA.3696@TK2MSFTNGP10.phx.gbl...
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,
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,