Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer automatiquement ligne

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 !

Kernoz

XLDnaute Occasionnel
Bonjour,

Voici mon problème,

J'ai un tableau de 50 lignes avec dans chaque cellules une rechercheV se referant à un client et une base de tarifs.

Lorsque je sélectionne un client, la liste de ces tarifs s'affiche dans le tableau, or lorsque celui ci a par exemple 30 tarifs, j'ai 20 lignes vides sur mon tableau.

Je voudrais que ces 20 lignes se masquent automatiquement lorsque je sélectionne ce client. Est-ce possible ?


Petite précision, mon tableau va de C42 à AM92 🙂

Merci d'avance 😉
 
Dernière édition:
Re : Masquer automatiquement ligne

Bonjour,

Voila, j'ai pris le temps de faire un exemple en pièce jointe.

En D2 le choix du transporteur.

Dans le tableau, une liste de tarifs s'affiche en fonction du transporteur choisi et je voudrais masquer de maniere automatique les lignes du tableau innutiles.

Merci d'avance.
 

Pièces jointes

Re : Masquer automatiquement ligne

Bonjour Kernoz, Paritec, le fil

Une solution avec une MEFC *
Tu retires les bordures et la couleur de fond sur la plage : C10:I103

  • Tu sélectionnes la plage :C10:E103
  • Tu appliques une MEFC
  • la formule : =NBCAR(C10)>0

  • Tu sélectionnes la plage :F10:I103
  • Tu appliques une MEFC
  • la formule : =NBCAR(F10)>0
Résultat obtenu:

*: MEFC = Mise en forme conditionnelle
 

Pièces jointes

  • mefc.gif
    15.5 KB · Affichages: 226
  • mefc.gif
    15.5 KB · Affichages: 227
Dernière édition:
Re : Masquer automatiquement ligne

Merci pour ta réponse.

Hélas, il faut vraiment que les lignes se masquent, car j'ai en dessous d'autres tableaux et le but de ce masque est de ne pas avoir à dérouler une centaine de lignes pour acceder au tableau du dessous.

😉
 
Re : Masquer automatiquement ligne

Rebonjour,

J'ai trouver un code mais celui ci est TRES TRES long, les lignes se masquent une par une et ca prend un temps fou ( environ 5minutes ) ...

Puis-je le modifier pour le rendre plus efficace ?
Y'a t-il un autre code plus rapide pour le même resultat ?

Le code :

Sub Masquer_Tarif()
'
' Masquer_Tarif Macro
'
Range("C42:C202").Select
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True
End If
Next

End Sub

Merci d'avance.
 
Re : Masquer automatiquement ligne

Bonsoir


Est-ce plus rapide ainsi ?


Code:
Sub demasque()
Range("C10:C103").SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = False
End Sub
Code:
Sub masque()
Dim p As Range
Set p = Range("C10:C103").SpecialCells(xlCellTypeFormulas)
Application.ScreenUpdating = False
For Each c In p
If Len(c) = 0 Then c.EntireRow.Hidden = True
Next c
Application.ScreenUpdating = True
End Sub
 
Re : Masquer automatiquement ligne

Bonjour,

Oui, la macro marche mais elle n'est pas plus rapide 🙁

Je ne sais pas pourquoi ca mets autant de temps à masquer quelques lignes 🙁

Une petite question néanmoins, j'essaye d'adapter la formule à plusieurs tableaux sur cette même feuille.
De plus j'ai ajouter la macro pour demasquer les lignes en debut de code.

Helas elle ne fonctionne pas ( sans doute le fait de selectionner plusieurs groupes de lignes ).
Voici le code :

VB:
 Sub Masquer_Lignes_Vides()
'
' Masquer_Lignes_Vides
'
Range("C42:C202,C208:387,C411:C509").SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = False
Dim p As Range
Set p = Range("C42:C202,C208:387,C411:C509").SpecialCells(xlCellTypeFormulas)
Application.ScreenUpdating = False
For Each c In p
If Len(c) = 0 Then c.EntireRow.Hidden = True
Next c
Application.ScreenUpdating = True
End Sub

Merci d'avance 😉
 
Dernière édition:
Re : Masquer automatiquement ligne

Bonjour Kernoz, bonjour le forum, bonjour le fil

Le plus simple:

Sur la feuille de tes tableaux:
Public Sub Masquer()

Application.ScreenUpdating = False
For i = 1 To (autant que tu veux)
Rows(i).Hidden = Cells(i, 3).Value = ""
J'ai pris la colonne 3 soit C pour base que la macro va check
Next i
Application.ScreenUpdating = True
End Sub


Sur la même feuille ou la feuille précédente (ou les actions de modification sont faitent):





Ensuite, pour les lignes entre tes tableaux. Rajoute des espaces dans les cellules de la colonne qui est ciblé par la macro. Les lignes resteront.

Cordialement,
Guillaume A.
 
Dernière édition:
- 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

Discussions similaires

Réponses
1
Affichages
210
Réponses
6
Affichages
292
Réponses
5
Affichages
370
Réponses
8
Affichages
485
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…