Bonjour à tous
Comment faire pour selectionner à partir de la colonne B jusqu'à la derniére ligne remplie et l'imprimer en vba excel ??
merci d'avance à tous
Lindette
Version imprimable
Bonjour à tous
Comment faire pour selectionner à partir de la colonne B jusqu'à la derniére ligne remplie et l'imprimer en vba excel ??
merci d'avance à tous
Lindette
Bonsoir Lindette,
Pour trouver la dernière ligne utile de la colonne B pas de problème :
Dans votre procédure :
dl = Range("B65536").End(xlUp).Row
Mais à partir de la valeur affectée à la variable "dl" vous ne voulez imprimer que le contenu de la colonne B ou d'une plage commençant à la colonne "X" ligne 1 jusqu'à la colonne "y" ligne = dl ?
bonsoir
juste une ligne
ta zone d'impression est définie de B1 a Bx.Code:
1
2 ActiveSheet.PageSetup.PrintArea = Range([B1], [B1].End(xlDown)).Address
Il ne doit pas y avoir de vide dans la colonne B pour que cela fonctionne
@+
Bonsoir
Merci à tous pour vos réponses mais je me suis mal exprimée.
je voudrais pouvoir selectionner de la colone B jusqu'à la derniere ligne remplie et ensuite imprimer et tout cela automatiquement quand je click sur le bouton de mon userform "imprimer".
Merci d'avance pour votre aide
Lindette
bonsoir,
ajoute juste
cordialementCode:
1
2
3 ActiveSheet.PageSetup.PrintArea = Range([B1], [B1].End(xlDown)).Address ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
fred65200
Salut fred,
Qu'est-ce que tu serais vachement gentil si tu expliquais les paramètres
(1,,,1,,,,,,,,2,,,TRUE,,FALSE) Je suppose que ce sont des paramètres de setup... Si oui, pourquoi ne pas utiliser Printout et Setup ?
Si non, tu vois à quelles extrémités on en est réduit :cry: "Supposer !" :mouarf:
bonsoir ouskel'n'or,
comme tu as déjà dû le remarquer, la mise en page et l'impression via VBA est terriblement longue.
L'utilisation des macros excel4 apporte un plus en terme de rapidité
----------------------------------------------------------------
Pour la mise en page les arguments sont les suivants :
'Arg1 En-tête
'Arg2 Pied de page
'Arg3 Marge Gauche en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg4 Marge Droite en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg5 Marge Haut en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg6 Marge Bas en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg7 Titre FALSE= sans, TRUE =
'Arg8 Grille FALSE ou TRUE
'Arg9 Centré Horizontalement = 1, sinon 0
'Arg10 Centré Verticalement = 1, sinon 0
'Arg11 Orientation - 1 = Portrait, 2 = Paysage
'Arg12 Type de papier - une constante XlPaperSize
'Arg13 Echelle - nombre < 400
'Arg14 Départ numérotation
'Arg15 Ordre d'impression - 1 = haut en bas, 2 = Gauche à droite
'Arg16 Couleur - 0 = avec couleur, 1 = Noir et Blanc
'Arg17 Qualité
'Arg18 En-tête en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg19 Pied de page en pouce (diviser par 2.54, avec le point (.) en séparateur décimal
'Arg20 Commentaire - 0 = sans, 1 = avec
'Arg21 Brouillon - 0 ou 1
Application.ExecuteExcel4Macro "PAGE.SETUP("Arg1,Arg2,,,,,,,,,,,,,,,,,,Arg20,Arg21)"
----------------------------------------------------------------
Pour l'impression les arguments sont les suivants :
'Arg1 Étendue:1 ou 2 - 1 = Tout, 2 = Pages
'Arg2 N° première page, omis si tout
'Arg3 N° dernière page, omis si tout
'Arg4 Nombre de copies
'Arg5
'Arg6 Aperçu: TRUE ou FALSE (par défaut)
'Arg7
'Arg8
'Arg9
'Arg10
'Arg11
'Arg12 Sélection: 1 ou 2 ou 3 ou 4 - 1 = Sélection, 2 = Feuille selectionée, 3 = Classeur entier, 4 = Tableau
'Arg13 Imprimante: ""Le_Nom_De_L_Imprimante_sur_Ne01:"", si omis, imprimante par défaut
'Arg14 Imprimer dans un fichier:TRUE ou FALSE (par défaut)
'Arg15
'Arg16
'Arg17 Ignorer les zones d'impression: FALSE ou TRUE
ExecuteExcel4Macro "PRINT(Arg1,Arg2,,,,,,,,,,,,,TRUE,Arg16,Arg17)"
----------------------------------------------------------------
Il me manque quelques arguments pour PRINT et je n'arrive pas à remettre la main sur un vieux bouquin sur les Macros4, désolé.
NB on peut remplacer TRUE par 1, et FALSE par 0 et réciproquement.
Mais là, je ne t'apprends rien.
Cordialement
fred65200
Dans Excel, effectivement. Dans VBA, True = -1Citation:
Envoyé par fred65200
Je le précise pour ceux qui ne savent pas ;)
PS - Merci de ta réponse :oops:Code:
1
2
3 Dim Result as boolean Result = not "coucou" = "salut" msgbox Result * 100 ' => -100
Mais ne peut-on pas faire la même chose avec Le Setup ?
Je suis curieux alors je vais aller voir mais pas ce soir.
Bonne nuit ? ;)
A+
Re
voir le post de 22:59 pour le setup
Application.ExecuteExcel4Macro "PAGE.SETUP("Arg1,Arg2,,,,,,,,,,,,,,,,Arg18,Arg19)"
Pour l'impression
ExecuteExcel4Macro "PRINT(Arg1,Arg2,,,,,,,,,,,,,TRUE,Arg16,Arg17)"
Bonne nuit
fred65200
Finalement j'ai testé avec setup :cry: Effectivement, on ne peut pas placer les paramètres sans les désigner :evil: VBA fait des progrès tout les jours.
Merci du teuyo ;) Je suis curieux de savoir ce que 2007 vous réserve.
Re
les macros XL4 ne sont pas propres à Excel 2007.
Il est vrai que la version 2007 reprend ces macros pour l'impression, VBA n'ayant jamais été très efficace dans ce domaine.
Je crois qu'elles sont nées avec la version 4 d'Excel , avant Windows 95.
info à confirmer.
Je t'envoie un lien sur un classeur qui n'est pas de moi par MP pour plus d'infos.
@+