Impression ligne si deux conditions réunies

libellule85

XLDnaute Accro
Bonjour le forum,

Je recherche un code vba pour imprimer une ligne si deux conditions sont remplies (la ligne va jusqu'à la colonne F):

par exemple si A7 remplie et D7 vide on imprime la ligne 7
et si A7 remplie et D7 remplie on n'imprime pas la ligne 7

la longueur verticale évolue pour l'instant j'en suis à 500 lignes

D'avance merci beaucoup pour votre aide
 

Fichiers joints

camarchepas

XLDnaute Barbatruc
Re : Impression ligne si deux conditions réunies

Bonjour Libellule,

Alors les solutions aux-quelles je pense :

Soit un filtre,
une copie du résultat vers un onglet temporaire.
Impression del'onglet
Suppression de l'onglet

Soit
Monter l'ensemble des ligne dans une variable tableau ,
Supprimer toutes les lignes non imprimables du tableau

composer un onglet d'impression.
Impression del'onglet
Suppression de l'onglet

Cordialement
 

camarchepas

XLDnaute Barbatruc
Re : Impression ligne si deux conditions réunies

Je suis sure que le besoin est plus important que le traitement de 2 lignes ,

Mais si tu veux , je peux t'écrire un exemple du traitement

Cordialement
 

libellule85

XLDnaute Accro
Re : Impression ligne si deux conditions réunies

Bonjour camarchepas,

Je remplis une ligne par jour, la 1ere cellule est renseignée le jour même mais la deuxième elle l'est en principe quelques jours plus tard.
Et c'est à la fin d'une semaine, d'un mois par exemple que j'imprime les lignes qui n'ont qu'une seule cellule de renseignée
 

job75

XLDnaute Barbatruc
Re : Impression ligne si deux conditions réunies

Bonjour libellule85, camarchepas,

Les lignes masquées ne sont jamais imprimées donc :

Code:
Sub Imrimer()
'imprime les lignes dont la colonne D est vide
On Error Resume Next
With Intersect([A:F], [A:A].SpecialCells(xlCellTypeConstants).EntireRow)
  Intersect([D:D], .Cells).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
  ActiveSheet.PageSetup.PrintArea = .Address
End With
ActiveSheet.PrintOut 'impression
Rows.Hidden = False
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Impression ligne si deux conditions réunies

Re,

A la reflexion il vaut mieux ceci :

Code:
Sub Imrimer()
'imprime les lignes dont la colonne D est vide
On Error Resume Next
With Intersect([A:F], [A:A].SpecialCells(xlCellTypeConstants).EntireRow)
  Intersect([D:D], .Cells).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
  ActiveSheet.PageSetup.PrintArea = .Address
  ActiveSheet.PrintOut 'impression
  .Rows.Hidden = False
End With
End Sub
En effet il peut y avoir des lignes volontairement masquées en dehors de la zone d'impression.

A+
 

libellule85

XLDnaute Accro
Re : Impression ligne si deux conditions réunies

Bonjour Job75,

Merci beaucoup pour ton aide.

Bonne soirée
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Impression ligne si deux conditions réunies

Re,

Bah j'ai fait l'inverse de ce qui est demandé, voici le bon code :

Code:
Sub Imrimer()
'imprime les lignes dont la colonne D est vide
On Error Resume Next
With Intersect([A:F], [A:A].SpecialCells(xlCellTypeConstants).EntireRow)
  .Rows.Hidden = True
  Intersect([D:D], .Cells).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
  ActiveSheet.PageSetup.PrintArea = .Address
  ActiveSheet.PrintOut 'impression
  .Rows.Hidden = False
End With
End Sub
A+
 

Discussions similaires


Haut Bas