Masquer/Afficher
Résolu
cedrico9797
Messages postés
10
Statut
Membre
-
lionel -
lionel -
Bonjour, je ne sais pas si mon sujet sera au bon endroit mais voici ma demande et merci a celui qui pourra m'aider :) :
je souhaite réaliser un fichier excel de quantitatif de materiel comme le modele en PJ.
et je voudrais masquer chaque ligne ou la colonne quantité est a 0, a l'aide d’un bouton Masquer/Afficher
merci pour votre aide! salutations
je souhaite réaliser un fichier excel de quantitatif de materiel comme le modele en PJ.
et je voudrais masquer chaque ligne ou la colonne quantité est a 0, a l'aide d’un bouton Masquer/Afficher
merci pour votre aide! salutations
A voir également:
- Masquer/Afficher
- Afficher appdata - Guide
- Comment masquer les amis sur facebook - Guide
- Masquer conversation whatsapp - Guide
- Comment appeler en masquer - Guide
- Afficher taille dossier windows - Guide
6 réponses
Bonjour
plutôt qu'une image, envoies un bout de fichier anonymisé avec
https://mon-partage.fr/
Cdlmnt
plutôt qu'une image, envoies un bout de fichier anonymisé avec
https://mon-partage.fr/
Cdlmnt
Bonjour cedrico,
J'ai vu que ta colonne G est celle des quantités "Qté" ; tu veux donc
masquer les lignes de ta colonne G pour lesquelles Qté = 0.
Il semble que ton texte "Qté" est en G13 ; si oui, ta 1ère ligne de
données est en G14 ; donc mon code VBA ci-dessous utilise 14
en ligne #7 et en ligne #8 ; à toi d'adapter si besoin : tu pourrais
vouloir commencer à partir de la ligne 16.
Le code vérifie la colonne G, de la ligne 14 à la dernière ligne ;
si la couleur de remplissage de ta cellule (= le fond) est en
vert clair (index de couleur : n° 35), alors :
ne rien faire si cette cellule est vide ; s'il y a 0, la masquer.
NB : si jamais tu saisis du texte sur fond vert clair en colonne G,
ces lignes resteront visibles ; si ta couleur de fond est une autre
que la mienne, tu dois bien sûr adapter le n° d'index couleur.
Merci de me dire si ça te convient, et si ton problème est réglé,
n'oublie pas de passer le sujet en résolu. ;)
J'ai vu que ta colonne G est celle des quantités "Qté" ; tu veux donc
masquer les lignes de ta colonne G pour lesquelles Qté = 0.
Il semble que ton texte "Qté" est en G13 ; si oui, ta 1ère ligne de
données est en G14 ; donc mon code VBA ci-dessous utilise 14
en ligne #7 et en ligne #8 ; à toi d'adapter si besoin : tu pourrais
vouloir commencer à partir de la ligne 16.
Le code vérifie la colonne G, de la ligne 14 à la dernière ligne ;
si la couleur de remplissage de ta cellule (= le fond) est en
vert clair (index de couleur : n° 35), alors :
ne rien faire si cette cellule est vide ; s'il y a 0, la masquer.
NB : si jamais tu saisis du texte sur fond vert clair en colonne G,
ces lignes resteront visibles ; si ta couleur de fond est une autre
que la mienne, tu dois bien sûr adapter le n° d'index couleur.
Option Explicit Sub Essai() Dim dlig As Long, lig As Long dlig = Range("G" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False: Rows("14:" & dlig).Hidden = 0 For lig = 14 To dlig With Cells(lig, 7) If .Interior.ColorIndex = 35 Then If Not IsEmpty(.Value) And .Value = 0 Then Rows(lig).Hidden = -1 End If End With Next lig End Sub
Merci de me dire si ça te convient, et si ton problème est réglé,
n'oublie pas de passer le sujet en résolu. ;)
salut Lionel, merci bcp pour ton code!
ça correspond très bien a ce que je veux faire!
en revanche, j'aimerai pouvoir tout faire ré-apparaître au 2eme clic de mon bouton associé a la macro. tu as une idée? merci bcp!
ça correspond très bien a ce que je veux faire!
en revanche, j'aimerai pouvoir tout faire ré-apparaître au 2eme clic de mon bouton associé a la macro. tu as une idée? merci bcp!
Bonjour cedrico,
La proposition de ccm81 utilise un 2ème bouton ; j'ai préféré faire ta
nouvelle demande avec ton même bouton « Afficher/Masquer » ;
de plus, j'ai ajouté une petite correction pour ta 1ère ligne de départ.
Dans mon 1er code VBA, avant de masquer des lignes, j'ai commencé
par toutes les afficher avec la 2ème instruction de la ligne #7 :
Rows("14:" & dlig).Hidden = 0
Donc si on s'arrête aussitôt après, ça fait ce que tu demandes :
afficher toutes les lignes ; reste à le rendre conditionnel.
-------------------------------------------------------
Pour faire cela, j'ai besoin d'une cellule de ta feuille qui conservera l'état
masqué ou non des lignes adéquates : 0 = visible ; 1 = masqué ; c'est un
choix purement arbitraire, et j'aurais pu inverser ces valeurs.
⚠ Au début, le nombre doit obligatoirement correspondre avec la réalité :
1 si des lignes sont masquées ; 0 si toutes les lignes sont affichées ;
ensuite, la macro inversera systématiquement cette valeur.
-------------------------------------------------------
Où mettre cette valeur ? J'ai vu que tu as 2 nombres en J94 et J95 ; j'ai donc choisi
une cellule de la même colonne, en J2 ; si tu préfères utiliser une autre cellule,
ce sera à toi d'adapter la ligne #8 du code VBA ci-dessous :
Option Explicit Sub Essai() Dim dlig As Long, lig As Long dlig = Range("G" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False: Rows("15:" & dlig).Hidden = 0 [J2] = 1 - [J2]: If [J2] = 0 Then Exit Sub For lig = 15 To dlig With Cells(lig, 7) If .Interior.ColorIndex = 35 Then If Not IsEmpty(.Value) And .Value = 0 Then Rows(lig).Hidden = -1 End If End With Next lig End Sub
Seule différence avec mon code VBA précédent : ajout de la ligne #8 ;
fais un clic droit sur ton bouton « Afficher/Masquer » et choisis l'item :
« Affecter une macro... » (pour lier ma macro Essai à ton bouton).
-------------------------------------------------------
Si tu veux que la valeur de J2 n'apparaisse pas, mets lui une couleur de
texte identique à celle du fond ; autre solution : utilise H2 à la place de J2
car ainsi, ta cellule sera cachée sous ton bouton « Masquer/Afficher » ;
si tu fais comme ça, n'oublie pas de changer ainsi la ligne #8 :
[H2] = 1 - [H2]: If [H2] = 0 Then Exit Sub
⚠ il faut faire 3 changements !
-------------------------------------------------------
Comme ta ligne d'en-têtes qui contient "Qté" est en ligne 14, la 1ère ligne
peut être celle qui suit => la ligne n° 15 et plus la n° 14 ; 2 changements
déjà faits, en lignes #7 et #9 du code VBA.
Merci de me dire si ça te convient, et si ton problème est réglé,
n'oublie pas de passer le sujet en résolu. ;)
PS : Je préfère ne pas te retourner ton fichier joint, car à son ouverture, j'ai eu
le message d'erreur "contenu illisible" ; je l'ai quand même ouvert (et j'en ai vu
le contenu), mais un message a indiqué : "certaines parties sont perdues".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour à tous les deux
J'ai complété la proposition de lionel, avec un deuxième bouton pour afficher tout
http://www.cjoint.com/c/GFBmpQ4UMXB
Cdlmnt
J'ai complété la proposition de lionel, avec un deuxième bouton pour afficher tout
http://www.cjoint.com/c/GFBmpQ4UMXB
Cdlmnt
La solution de ccm81 avec 2 boutons marche très bien ; si tu préfères une solution
avec un seul bouton, tu peux lire mon message du 27 juin à 15:54 ; il y a en plus
une petite correction pour la ligne de départ : à partir de la ligne n° 15 ; c'est aussi
ma réponse à tes 2 messages de 09:31 et 09:55.
avec un seul bouton, tu peux lire mon message du 27 juin à 15:54 ; il y a en plus
une petite correction pour la ligne de départ : à partir de la ligne n° 15 ; c'est aussi
ma réponse à tes 2 messages de 09:31 et 09:55.