Imprimer les colonnes uniquement renseigner

maval

XLDnaute Barbatruc
Bonjour,

Je recherche une macro qui me permettrais d'imprimer la totalité des informations de ma feuille.
Est-il possible de garder pour l'impression que les colonnes qui sont renseigner ?

exemple ci joint: ici les colonnes suivantes :

"E,F,G,I,J,K,L,M,N,AC,AR,AS,AT,AU,AV,BZ,CA,CB,CD"

Merci d'avance de votre aide

Cordialement

Maval
 

Pièces jointes

  • Test.xlsm
    33.9 KB · Affichages: 55
  • Test.xlsm
    33.9 KB · Affichages: 58
  • Test.xlsm
    33.9 KB · Affichages: 57
  • Test.xls
    112 KB · Affichages: 48
  • Test.xls
    112 KB · Affichages: 45
  • Test.xls
    112 KB · Affichages: 47
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Imprimer les colonnes uniquement renseigner

Salut maval et le forum
xlsm => tu sais donc faire les macros, donc une piste

Le plus simple, personnellement, serait de copier ta feuille, puis de supprimer chaque colonne vide en ligne 4 en respectant, si nécessaire, les colonnes servant de séparation). Puis d'imprimer cette feuille et de l'effacer après impression.

A+
 

job75

XLDnaute Barbatruc
Re : Imprimer les colonnes uniquement renseigner

Bonjour maval, salut Gorfael,

Voir le fichier joint avec cette macro :

Code:
Sub Imprimer()
Dim r As Range, masque As Range
Set r = Intersect([4:65536], ActiveSheet.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r.Columns
  If Application.Count(r) = 0 And Application.CountIf(r, "?*") = 0 _
    Then Set masque = Union(IIf(masque Is Nothing, r, masque), r)
Next
If Not masque Is Nothing Then masque.EntireColumn.Hidden = True
ActiveSheet.PrintPreview 'pour tester
'ActiveSheet.PrintOut 'neutralisé pour tester
Columns.Hidden = False
End Sub
Clic sur le bouton.

A+
 

Pièces jointes

  • Test(1).xls
    118.5 KB · Affichages: 63
  • Test(1).xls
    118.5 KB · Affichages: 62
  • Test(1).xls
    118.5 KB · Affichages: 63

maval

XLDnaute Barbatruc
Re : Imprimer les colonnes uniquement renseigner

Bonjour,

Suite au code qui a était réaliser par Job75 que je remercie encore et que je salut au passage, j'aimerai lui apporter une modif.
J'ai un problème à l'impression j'ai actuellement les colonnes qui peuvent varier de 12 à 90 colonnes, et j'aurais aimé savoir si il était possible de conserver ce code qui me permet de garder les colonnes uniquement renseigner et avoir les colonnes toujours sur une feuille en mode paysage, et non pas passer sur 2 feuilles ou plus.

Est il possible d'avoir un zoom qui s'adapte automatiquement ?

Je vous remercie de votre aide

Cordialement

Maval
 

job75

XLDnaute Barbatruc
Re : Imprimer les colonnes uniquement renseigner

Bonjour maval,

Il suffit d'utiliser les commandes de la Mise en page :

- Orientation => Portrait ou Paysage

- Largeur => 1 page, Hauteur => 1 page

- centrer horizontalement (Marges personnalisées sur Excel 2010).

Par ailleurs j'en profite pour adapter la macro si l'on veut masquer les colonnes A: D à l'impression :

Code:
Sub Imprimer()
Dim r As Range, masque As Range
Set r = Intersect([4:65536], ActiveSheet.UsedRange)
If r Is Nothing Then Exit Sub
Set masque = [A:D]
For Each r In r.Columns
  If Application.Count(r) + Application.CountIf(r, "?*") = 0 _
    Then Set masque = Union(masque, r)
Next
masque.EntireColumn.Hidden = True
ActiveSheet.PrintPreview 'pour tester
'ActiveSheet.PrintOut 'neutralisé pour tester
Columns.Hidden = False
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Test(2).xls
    125 KB · Affichages: 47
  • Test(2).xls
    125 KB · Affichages: 53
  • Test(2).xls
    125 KB · Affichages: 50

job75

XLDnaute Barbatruc
Re : Imprimer les colonnes uniquement renseigner

Re,

On peut en plus masquer les lignes où il n'y a pas de points en colonne I :

Code:
Sub Imprimer()
Dim plage As Range, r As Range, masque As Range, masque1 As Range
Set plage = Intersect([4:65536], ActiveSheet.UsedRange)
If plage Is Nothing Then Exit Sub
Set masque = [A:D]
For Each r In plage.Columns
  If Application.Count(r) + Application.CountIf(r, "?*") = 0 _
    Then Set masque = Union(masque, r)
Next
For Each r In Intersect([I:I], plage)
  If r = "" Then _
    Set masque1 = Union(IIf(masque1 Is Nothing, r, masque1), r)
Next
masque.EntireColumn.Hidden = True
If Not masque1 Is Nothing Then masque1.EntireRow.Hidden = True
ActiveSheet.PrintPreview 'pour tester
'ActiveSheet.PrintOut 'neutralisé pour tester
Columns.Hidden = False
Rows.Hidden = False
End Sub
Fichier (3).

A+
 

Pièces jointes

  • Test(3).xls
    130.5 KB · Affichages: 53
  • Test(3).xls
    130.5 KB · Affichages: 50
  • Test(3).xls
    130.5 KB · Affichages: 64

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87