SVP urgent ! macro pour masquer des lignes

  • Initiateur de la discussion Initiateur de la discussion ania7064
  • 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 !

A

ania7064

Guest
BONJOUR
je travaille sur une feuille excel liée à une autre (base de données) ;le souci c à l'impression ,je voudrais imprimer sans les lignes vides (qui contiennent des formules cachées ). (sachant que ca change selon les données c a d ,selon les testS je peux avoir des lignes VIDE EXEMPLE de A16à A 22 ou A53 à A77 ( exemple aussi)
quelle est la macro à utiliser ,j'ai une plage de A16:H202 ;
j'espere que j'etais claire; j'ai passé un temps fou en vain
je vous remercie de votre aide ,
cordialement
 
Re : SVP urgent ! macro pour masquer des lignes

Ca devrait marcher :

Code:
Sub Impression_sans_vide()
'
' Impression_sans_vide Macro
'

'
    Range("A15:H81").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A15:H202").Select
    Selection.AutoFilter
    Range("A15").Select
    ActiveSheet.Range("$A$15:$H$202").AutoFilter Field:=1, Criteria1:="<>"
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
    Selection.AutoFilter
End Sub
 
Re : SVP urgent ! macro pour masquer des lignes

Bonjour ania, bonjour le forum, le fil


- Refresh d'un tableau pour masquer les lignes inutiles:


Public Sub Masquer() 'hide unused lines automatically

Application.ScreenUpdating = False
For i = 1 To 300
Rows(i).Hidden = Cells(i, 1).Value = ""
Next i
Application.ScreenUpdating = True
End Sub

Mettez uniquement ce code dans la feuille ou le tableau se trouve si vous créez un bouton de validation (genre bouton appelé REFRESH)

- Si vous faites apparaître le texte dans les lignes du tableau grâce à la validation de cellules sur une autre feuille B, vous pouvez faire que le tableau se refresh automatiquement en ajoutant dans la feuille B ce code:


Private Sub Worksheet_Change(ByVal Target As Range) 'Each time an action is done on this page, then Masquer() is launched

Call Feuil(NumFeuil).Masquer


Lorsqu'il y a du texte, la ligne apparait, lorsqu'il y en a pas elle disparaît. Du coup ta ligne réaparait si tu utilise une fonction pour y faire apparaitre du texte:
Ex: =SI('Feuil2'!D9="Oui";'Feuil1'!F10;"") avec feuil 1 ta base de donné a valider par Oui ou Non par exemple


Avantage de ce code: Très performant, aucun temps de refresh. Instantané.

Cordialement,
Guillaume A.
 
Dernière édition:
Re : SVP urgent ! macro pour masquer des lignes

EXCUSEz MOI une autre question ;si je veux travailler sur la meme feuille ,en mettant un bouton pour afficher et masquer ,comment on peut reafficher les lignes masqués ,merci de votre reponse
 
Re : SVP urgent ! macro pour masquer des lignes

Bonjour,

Le premier code, pour masquer les lignes dont la cellule de la colonne A est vide :

Code:
Sub Masquer()
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Et pour tout afficher :

Code:
Sub Demasquer()
Cells.EntireRow.Hidden = False
End Sub

Bonne journée
 
Re : SVP urgent ! macro pour masquer des lignes

Bonjour,

Et ben, fais un mix des propositions.....

Le code de GuillaumA (légèrement modifié) pour masquer :

Code:
Sub Masquer()
Dim I As Integer
Application.ScreenUpdating = False
For I = 1 To [H65000].End(xlUp).Row
    Rows(I).Hidden = Cells(I, 1).Value = ""
Next I
End Sub

et le mien, pour démasquer :

Code:
Sub Demasquer()
Cells.EntireRow.Hidden = False
End Sub

Bonne nuit....
 
Re : SVP urgent ! macro pour masquer des lignes

dommage le code de guillaume (le premier Sub Impression_sans_vide()
'
' Impression_sans_vide Macro
'

'
Range("A15:H81").Select
Range(Selection, Selection.End(xlDown)).Select
Range("A15:H202").Select
Selection.AutoFilter
Range("A15").Select
ActiveSheet.Range("$A$15:$H$202").AutoFilter Field:=1, Criteria1:="<>"
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Selection.AutoFilter
End Sub
a marché (le seul ) mais pour demasquer tous les codes n'ont pas fonctionné ;
je sui sincapable d'editer le code pour demasquer ,trop flou pour moi
cordialement
 
Re : SVP urgent ! macro pour masquer des lignes

bonjour
je me permet de vous ecrire car la macro a bien fonctionné (pour masquer )mais à la fin d'excution un message s'affiche :debogage.
à votre a vis comment y remedier ??
MERCI DE VOTRE REPONSE
 
Re : SVP urgent ! macro pour masquer des lignes

Salut

un exemple avec 2 boutons bascule, le premier si on ne teste que les vides de la colonne A et le second si on teste tous les vides (8 colonnes).

Code:
Private Sub ToggleButton1_Click()
  Dim Li As Integer, col As Byte
  Application.ScreenUpdating = False
  [A16:A207].EntireRow.Hidden = 0
  ToggleButton1.Caption = IIf(ToggleButton1.Caption = "cacher", "afficher", "cacher")
  For Li = 16 To 207
    If ToggleButton1.Caption = "afficher" And (Cells(Li, 1) = "" Or Cells(Li, 1) = 0) Then Rows(Li).Hidden = 1
  Next
  Application.ScreenUpdating = True
  'If ToggleButton1.Caption = "afficher" Then [A1:H207].PrintPreview
End Sub
Private Sub ToggleButton2_Click()
  Dim Li As Integer, col As Byte
  Application.ScreenUpdating = False
  [A16:A207].EntireRow.Hidden = 0
  ToggleButton2.Caption = IIf(ToggleButton2.Caption = "cacher", "afficher", "cacher")
  For Li = 16 To 207
    For col = 1 To 8
      If ToggleButton2.Caption = "afficher" And (Cells(Li, col) = "" Or Cells(Li, col) = 0) Then Rows(Li).Hidden = 1: Exit For
    Next
  Next
  Application.ScreenUpdating = True
  'If ToggleButton2.Caption = "afficher" Then [A1:H207].PrintPreview
End Sub
 

Pièces jointes

- 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

L
Réponses
9
Affichages
1 K
A
Réponses
9
Affichages
1 K
arnaudguerin
A
C
Réponses
12
Affichages
2 K
Retour