Code VBA pour masqué des lignes vide aléatoire

  • Initiateur de la discussion Initiateur de la discussion Jean philippe94
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jean philippe94

Guest
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
 
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 ?
 
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
 
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 😀
 
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
 
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 ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
673
Réponses
10
Affichages
1 K
Retour