Code VBA pour masqué des lignes vide aléatoire

Jean philippe94

XLDnaute Nouveau
Bonjour,

J'ai une macro qui imprime une partie de ma feuille. Suivant les resultas obtenue, j'ai des lignes vide qui ne sont pas au meme endroit à chaque fois.

La macro imprime toute les lignes ce qui prend 2 pages A4, alors que si la macro pouvait masquer les lignes vide automatiquement avant l'impression je gagnerais une page à chaque fois.( je ne peut pas modifier la mise en page car la taille du texte et la largeure des colonnes ne doivent pas changer)

Ci dessous la macro que j'utilise :

Sub IMPRESSIONDEBIT()
'
''
ActiveWindow.SmallScroll Down:=18
Range("A41:I144").Select
Selection.PrintOut Copies:=1, Collate:=True
ActiveWindow.SmallScroll Down:=-129
Range("A1").Select
End Sub


D'avance merci pour vos solutions
 

Sugarman

XLDnaute Nouveau
Re : Code VBA pour masqué des lignes vide aléatoire

Salut,

Une idée :

Tu peux pas copier la feuille (oui carrement) dans le meme document puis supprimer les lignes non renseignées dans la nouvelle feuille donc.
Aprés quoi tu imprimes.
Et aprés l'impression tu supprimes la nouvelle feuille...

CA fait un peu usine à gaz ?
 

Kobaya

XLDnaute Occasionnel
Re : Code VBA pour masqué des lignes vide aléatoire

hello Jean philippe94,

Voici une solution un peu moins brutale -ou un peu plus subtile- ça dépend comment on voit les choses, que celle de Sugarman ;)
Code:
Public Sub MasqueLignes()
    Dim lngLigne As Long
 
    ' nombre de lignes utilisées
    lngLigne = Cells.SpecialCells(xlCellTypeLastCell).Row
 
    Do Until lngLigne = 0
        If Application.WorksheetFunction.CountA(Rows(lngLigne)) = 0 Then
            Rows(lngLigne).Hidden = True
        End If
        lngLigne = lngLigne - 1
    Loop
End Sub
Bien sûr, ne pas oublier ensuite de faire réapparaître les lignes avec par exemple
Code:
Rows.Hidden = False
 

Sugarman

XLDnaute Nouveau
Re : Code VBA pour masqué des lignes vide aléatoire

En effet, c'est carrement moins prise de tete et beaucoup plus propre.

:)

Note : j'ai utilisé ma méthode une fois parce qu'il y avait bcp de manipulations à faire au sein de ma feuille juste pour une impression mais pour une manip aussi simple ca ne vaut pas le coup... méa culpa, viva kobaya :D
 

Bruce68

XLDnaute Impliqué
Re : Code VBA pour masqué des lignes vide aléatoire

Bonjour Jean Philippe94 et le forum
Macro à ajouter ( Contole des cellules de la comonne A de A41: A144 si vide Ligne entiere cachée , à adapter suivant la colonne )

Sub IMPRESSIONDEBIT()
ActiveWindow.SmallScroll Down:=18

For i = 41 To 144
If Range("A" & i) = "" Then ' Controle ligne par ligne la colonne A = ""
Rows(i & ":" & i).Select 'Cache la ligne si = ""
Selection.EntireRow.Hidden = True
End If
Next i
Range("A41:I144").Select
Selection.PrintOut Copies:=1, Collate:=True
ActiveWindow.SmallScroll Down:=-129
Range("A1").Select

Rows("41:145").Select
Selection.EntireRow.Hidden = False
End Sub

Bonne journée
 

Jean philippe94

XLDnaute Nouveau
Re : Code VBA pour masqué des lignes vide aléatoire

merci pour vos réponse,

j'ai oublier un petit détail, dans chaque cellule, j'ai une ligne de calcul de type :

" =SI(A58=" ";" ";SI(INDIRECT(TypeMeca&"!L"&LIGNE()+RECHERCHEV(TypeMeca;aFeuilles;2;FAUX)&"C4";FAUX)=0;" ";INDIRECT(TypeMeca&"!L"&LIGNE()+RECHERCHEV(TypeMeca;aFeuilles;2;FAUX)&"C4";FAUX))) "


Les macros que vous m'avez données ne fonctionne pas peut être à cause de la formule ?
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz