Imprimer avec ligne masquées

P

POLO

Guest
Bonjour

J'ai un souci avec mon code suivant:

Le but est de masquer les lignes vide d'un tableau qui va de A 32 à L 200 avec la condition si une cellule de la colone F est vide alors on masque puis on imprime et ensuite je réaffiche les lignes masquées.

Avec mon code cela ne fonctionne pas correctement


Private Sub BoutImpression_Click()

Dim Cell As Range
Dim Plage As Range

With Sheets('Saisie')
Set Plage = .Range('f32:f' & range('f200').End(xlUp).Row)


For Each Cell In Plage
If Cell = '' Then
.Rows(Cell.Row).Hidden = True

F1.PrintOut

End If

Next

Sheets('Saisie').Rows.Hidden = False

End Sub

Merci de votre aide
 
P

polo

Guest
re bonjour

En faisant le message je viens de réagir que mon F1.printout était mal placé. en le mettant aprés le next cela fonctionne. Je n'imprime qiue les lignes qui ont des valeurs. Cependant comment définir la zone d'impression uniquement pour la zone des lignes qui ont udes valeurs ?
 
P

POLO

Guest
Dans l'énervement et la précipitation je n'avais pas pensé à joindre un fichier pour exemple [file name=imprime_20060418154022.zip size=9505]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/imprime_20060418154022.zip[/file]
 

Pièces jointes

  • imprime_20060418154022.zip
    9.3 KB · Affichages: 41

Gael

XLDnaute Barbatruc
Bonjour Polo,

Tu peux définir la zone d'impression en tant que plage variable et elle s'adaptera au nombre de lignes contenant une valeur en colonne A.

Tu fais insertion - nom - définir, tu cliques sur 'Zone_d_impression' et dans le champ 'Fait référence à' tu mets:

=DECALER(Feuil1!$A$31;;;NBVAL(Feuil1!$A:$A)+1;12)

puis tu fais 'Ajouter' et 'fermer'.

J'ai figé la largeur à 12 mais tu peux aussi mettre une formule comme NBVAl.

@+

Gael
 
P

POLO

Guest
Merci de ta réponse mais je dois etre nul car ça ne marche pas

Je fais comme tu dis et je met F à la place de A
en effet c'est ma colonne F qui est déterminante.

=DECALER(Feuil1!$A$31;;;NBVAL(Feuil1!$F:$F)+1;12)

Si j'ai bien compris cela me permet de définir la zone de A31 à L31 en n'imprimant que les lignes de la colone F qui sont remplies.
Pour moi cela n'imprime que la ligne d'en tête et 5 première ligne de la sélection sans faire apparaitre les ligne ou il il y les valeurs 10 20 et 15.

Ne peux t on pas inserer la même fonction dans mon code car au dessus du tableau il y y bien sur des données figées qui vont être à imprimer.

Je craque

Merci et à plus
 

Gael

XLDnaute Barbatruc
Rebonjour Polo,

En fait, il ne faut pas mettre 'F' à la place de 'A' car cela correspond au nombre de lignes total à prendre en compte qui est le nombre de valeurs de la colonne A.

Si tu ajoute des lignes (avec une valeur en colonne A) elles seront prises en compte automatiquement dans l'impression, mais cela ne masque pas les lignes qui ne contiennent rien en 'F' et ne peut pas servir à les sélectionner.

Tu peux essayer avec un filtre automatique avec la macro suivante:

Sub Macro1()
Range('F31').Select
Selection.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:='InfSup'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Selection.AutoFilter
End Sub

Attention, il faut remplacer InfSup par les signes 'plus petit que' et 'plus grand que'.

@+

Gael
 
P

POLO

Guest
Je crois réver : :) CA MARCHE :)
Bien sur je ne doutais pas de trouver la solution au travers des compétences de gens comme toi mais là c'est RESPECT car çà faisait 4 jours que je me prenais la tête la dessus.

Ce code là je suis pas prêt de l'oublier et je souhaites qu'il puisse servir à d'autres (mêem si en le visualisant on peut se dire qu'il a l'air tout simple.

Un peu de poésie (et de Coteau du LAYON) çà peut pas faire de mal :
Avec Gael la vie est plus belle sur Excel.

Bon j'arrête de délirer mais sincèrement merci.

A plus
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 612
dernier inscrit
GLOIRE