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

Masquer certaines lignes en fonction de plusieurs cellules.

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

k4RADOC

XLDnaute Nouveau
Bonjour à tous,

Ma question du jour porte sur une macro pour cacher certaines lignes.
En gros je souhaite que ma fonction analyse toutes les cellules (de la G14 à la G1000) et me masque toutes les lignes correspondante ou un 0 apparait dans la cellule. Par exemple si G14 =0 on masque la ligne 14 si G356=0 on masque la ligne 356 etc. Bien évidemment je souhaite que si une des cellules G devient >0 la ligne s'affiche de nouveau.
En espérant que quelqu'un ai la solution à mon problème,
Bien cordialement.
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Bonjour k4RADOC,
Le principe général :
VB:
Sub test()
Dim i&
Application.ScreenUpdating = False
For i = 14 To 1000
    Rows(i).Hidden = Range("g" & i) = 0
Next i
Application.ScreenUpdating = True
End Sub
Après il faut voir à quel moment tu désire lancer la macro, avec un bouton ? A la saisie en colonne G ? ....
Cordialement
 
Dernière édition:
Re : Masquer certaines lignes en fonction de plusieurs cellules.

En gros ma colonne "G" se rempli automatiquement via une autre feuille l'idéal pour moi sera d'avoir un bouton qui lance et stop la macro. Est ce possible ?
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Re,
Pourrais tu mettre un petit exemple, et expliquer ce que tu entends par "Activer / désactiver", est-ce masquer / afficher les lignes ?
A te relire
Cordialement
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Oui en gros c'est ça. On va dire si je clique sur le bonton, cela correspond à une action ON et donc les lignes inutiles sont masquées. Si j'appuie de nouveau on obtient un OFF et toutes les lignes s'affichent.

Exemple :


Les cellules G15 G167 et G978 sont égales à 0 toutes les autres sont supérieurs ou égale à 1 si j'appuie sur mon bouton les lignes 15, 167 et 978 se masquent. Si je réappuie sur mon bouton les lignes 14 à 1000 s'affichent.
Est ce assez clair ?
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Re
Regarde si cet exemple te conviens. Il est quand même plus logique que ce soit le demandeur qui dépose un exemple... Enfin bon...
Mais doit on vraiment aller jusqu'a la ligne 1000 à chaque foi ?
VB:
Private Sub CommandButton1_Click()
Dim i&
Application.ScreenUpdating = False
If CommandButton1.Caption = "Afficher les lignes" Then
    CommandButton1.Caption = "Masquer les lignes"
    Rows("14:1000").Hidden = False
Else
    CommandButton1.Caption = "Afficher les lignes"
    For i = 14 To 1000
        Rows(i).Hidden = Range("g" & i) = 0
    Next i
End If
Application.ScreenUpdating = True
End Sub
Cordialement
 

Pièces jointes

Re : Masquer certaines lignes en fonction de plusieurs cellules.

Désolé j'aurais du mieux formuler ma question dès le début. J'ai juste une dernière question vu que dans votre exemple la fonction marche parfaitement. J'ai copié le code dans ma feuille VBA maintenant comment je fais pour faire apparaitre le bouton ?
 
Dernière édition:
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Re
Pour le code il faut le coller dans le code de la feuille: clic droit sur l'onglet / Visualiser le code.
Pour "faire apparaitre le bouton"
Menu affichage / Barres d'outils / Boite à outils contrôles (Pas Formulaire...).
Choisir le bouton de commande, et le dessiner sur la feuille : clic gauche sur la feuille et agrandir la selection.
Ensuite désactiver le mode création : cliquer sur l'icone "crayon et equerre"
Cliquer une ou deux fois sur le bouton et le texte sera modifié automatiquement par le code.
Cordialement
EDIT
Je laisse un fichier Tuto fait par michel xld avec capture d'écrans et tout, et tout.
 

Pièces jointes

Dernière édition:
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Merci pour toute ces réponses tu m'aides grandement. Bon cette fois le bouton est crée ça marche quasiment sauf que lorsque je clique dessus le message suivant s'affiche :
" Erreur d'execution '13':
Incompatibilité de type
Quand je clique sur débogage, la ligne suivante est en jaune :" Rows(i).Hidden = Range("g" & i) = 0"
J'ai du mal à comprendre d'où vient le problème car dans ton fichier tout marche parfaitement.
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Ah et petite précision, ça plante mais quand je ferme VBA les lignes censé être masqué le sont et le bouton est maintenant devenu "Afficher les lignes" si je clique dessus il affiche tout et quand je clique sur masquer ça re beug...
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Re
Tu as bien mis le code dans le code de la feuille ?
Sans avoir le fichier qui ne vas pas, je ne pourrai rien pour toi...
Cordialement
 
Re : Masquer certaines lignes en fonction de plusieurs cellules.

Re
Soit tu te débroulle pour que tes formules ne renvoient d'erreur... (ce qui serai quand même la moindre des choses) soit tu utilise un cache misère:
VB:
Private Sub CommandButton1_Click()
Dim i&
Application.ScreenUpdating = False
If CommandButton1.Caption = "Afficher les lignes" Then
    CommandButton1.Caption = "Masquer les lignes"
    Rows("14:1000").Hidden = False
Else
    CommandButton1.Caption = "Afficher les lignes"
    For i = 14 To 1000
        On Error Resume Next
        Rows(i).Hidden = Range("g" & i) = 0
        If Err Then Err.Clear
    Next i
End If
Application.ScreenUpdating = True
End Sub
Cordialement
 
- 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
2
Affichages
572
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…