Masquer des lignes en fonction de la valeur d'une cellule [Résolu/Fermé]

Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
- - Dernière réponse : Luke94
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
- 17 nov. 2015 à 21:57
Bonjour,

j'ai besoin de masquer ou d'afficher un tableau TAB10 en fonction de la valeur de la cellule G20. Si celle ci est "VRAI" le tableau doit être masqué. Si celle ci est "FAUX", le tableau TAB10 doit s'afficher.

Cela marchait bien avec deux checkbox OUI et NON que je cochais manuellement. Mais je dois les supprimer et les remplacer par le résultat de la cellule G20. Ma macro doit pouvoir être appliquée sans activation d'un bouton mais juste dépendant de la valeur de G20.

Merci d'avance pour l'aide que vous pourrez m'apporter !

Cordialement
Afficher la suite 

20/23 réponses

Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Bonsoir,

serait il possible d'avoir un bout de ton fichier que l'on voit sa structure afin d'adapter le code ou avoir le code qui te donnait satisfaction afin de le compléter.
pour joindre ton fichier sert toi de ce lien
http://www.cjoint.com/
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonsoir,

tu pourras trouver un exemple de fichier sur le lien suivant :
http://www.cjoint.com/c/EKgvg4pRHvL

Dans cet exemple, la case G7 prend la valeur VRAI ou FAUX en fonction d'une valeur située en case J2. L'objectif reste le même : si la valeur de G7 est "VRAI" le tableau nommé "Tableau10" doit être masqué. Si celle ci est "FAUX", le tableau TAB10 doit s'afficher.

Merci d'avance !
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
RE,

alors pour faire ce que tu veux, il faut passer par du VBA et le tableau ou plutôt le groupe de cellule qui le compose C10:F16 ne peut se masquer, ce qui est possible de masquer sont les lignes 10 à 16 ou les colonne C à F
tout dépend de ce qui se trouve autour du tableau.

que souhaites tu masquer les lignes ou les colonnes !
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonjour,

je te confirme que j'aimerais effectivement masquer les lignes de ce tableau. Je suis passé par la définition d'un tableau et non des lignes fixes car j'ai aussi une macro pour ajouter des lignes au tableau. Le nombre de ligne sera donc amené à évoluer. En revanche, je dois pouvoir masquer toutes les lignes de ce tableau.

Merci encore pour ton aide !

Cordialement
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

télécharge ton fichier et change la valeur en J2

http://www.cjoint.com/c/EKhmkh0rUfj


Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonjour,

merci beaucoup pour la macro qui fonctionne parfaitement. En revanche, juste un petit souci lorsque je veux ajouter une ligne à la fin de mon tableau puisque le code demande à masquer les lignes entre 10 et 16, donc des lignes fixes. Comment prendre en compte les éventuels ajouts de ligne ? C'est pour cette raison que j'avais pensé que le nommage du tableau pourrait être utile mais peut être fais je fausse route ?

De plus, je ne peux pas juste chercher la dernière ligne non vide de la feuille car il y aura d'autres tableaux sous celui ci (auquel d'ailleurs j'appliquerai la même macro pour masquer/démasquer en fonction de la valeur d'une cellule).

Verrais tu une solution à ce problème ?

Merci d'avance et bon week end !
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

lorsque tu es sur un tableau, exemple pour ton tableau 10 peut il y avoir des cellule vide dans la première colonne soit entre C10 et la dernière C16 plus tard exemple C20
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonsoir,

chaque fois qu'une ligne sera ajoutée, elle sera remplie (au moins la cellule de la 1ère colonne).

Bonne soirée
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

alors remplace le code par celui ci

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim x
x = [C10].End(xlDown).Row
If Not Intersect(Target, [J2]) Is Nothing Then
If [G7] = "VRAI" Then
Range("C10:C" & x).EntireRow.Hidden = True
Exit Sub
ElseIf [G7] = "FAUX" Then
Range("C10:C" & x).EntireRow.Hidden = False
End If
End If
End Sub
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonsoir,

merci beaucoup pour ce code qui fonctionne parfaitement avec le fichier fourni. J'ai tenté aujourd'hui de l'adapter à mon fichier cible. Le souci est que le code que vous m'avez donné prend en compte une valeur rentrée par l'utilisateur (cellule en J2). Dans mon fichier de travail, ma case G7 est le résultat d'opération SI et OU et affiche donc "OUI" ou "NON" en fonction de ce résultat et non d'une seule valeur qui serait rentré par l'utilisateur...

J'ai pensé à copier ces opérations dans une autre cellule et de copier cette cellule en G7 mais cela ne fonctionne pas, j'imagine pour cette même raison.

Pensez vous que nous puissions tout de même adapter votre code ?

Merci d'avance et bonne soirée !
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

il faudrait voir un exemple de fichier anonymisé qui reflète le fichier original que l'on voit s'il est possible d'écrire des variables en tête de code
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
J'ai repris le fichier envoyé en y incluant des cases OUI et NON. Ces cases sont en fait renseignées par l'utilisateur par des cases à cocher qui indiquent OUI ou NON.

La case G7 doit faire la synthèse en fonction de couples "OUI" et "NON" rempli juste avant. En fonction de la valeur "VRAI" ou "FAUX" issue de cette synthèse, le tableau doit être masqué ou non.

L'utilisateur ne renseigne donc pas cette valeur G7 mais indique la réponse OUI ou NON à plusieurs questions posées via les cases à cocher en amont.

Comme demandé, vous pourrez trouver ce code sur le lien ci dessous :
http://www.cjoint.com/c/EKjvlmko5aL
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

comment sont saisi les vrai et faux des cellules A1, A2, B1, B2

tu peux me détailler ta formule en G7 qui ne me plait pas, quelles sont les conditions pour afficher VRAI en G7

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Les VRAI et FAUX sont renseignés via des cases a cocher. Concernant la formule, elle dépend d'une matrice d acceptabilité qui dépend des couples VRAI et FAUX.

Je n'ai pas ici le fichier original mais pourrais le décliner et l'envoyer si vraiment tu as besoin de connaitre la formule de G7.
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
RE,

Oui il serait intéressant d'avoir un exemple de fichier anonymisé pour voir sur quel élément s'appuyer pour déclencher le code à bon escient et ne pas ralentir ou limiter l'utilisation par des déclenchements inutiles
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonjour,

comme convenu, le fichier sur le lien suivant :

http://www.cjoint.com/c/EKknk6O4EOL

On joue sur les cases à cocher des lignes 11 et 16 (sauf la cas B11) pour faire bouger la matrice colorée d'acceptabilité qui nous renvoie ensuite la valeur OUI ou NON en case G20.

Merci encore pour votre aide.
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

quand tu fais un fichier il faut veiller à la simplicité et surtout à sa taille, pourquoi dans tes cellules B11:G18 tu as recouvert tes Checkbox d'une zone de texte alors que tu peux saisir le texte directement dans chaque checkbox et l'aligner
comme ton code VBA as des lignes inutiles, je te regarde ça dans la soirée
peux tu me dire, lorsque tu coche par exemple la checkbok en B11 quel tableau ou les lignes doivent se masquer, idem pour chaque checkbox

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonjour,

désolé pour ma réponse tardive...
La cellule B11 est particulière car elle ne rentre pas dans les critères de la matrice colorée. L'activation des autres checkbox modifie l'emplacement de la croix dans la matrice colorée et donc la valeur de la cellule G20. La matrice colorée est modifiée par la valeur des cellules C11 à G11 et B16 à F16.

Lorsque la cellule G20 affiche "OUI", les lignes 22 à 49 doivent pouvoir être masquées. Ces lignes correspondant au tableau nommé TAB10. Lorsque la valeur est placée à "NON", ces mêmes lignes doivent être affichées. Ce n'est pas l'utilisateur qui rentre OUI ou NON dans la case G20 mais bien le résultat du choix effectué dans les cellules C11 à G11 et B16 à F16, correspondant aux items G1 et F1.

Merci à toi et bonne journée !
Messages postés
16920
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 août 2019
3562
0
Merci
Re,

regarde ton fichier voir
http://www.cjoint.com/c/EKnoT4pTXpj
Messages postés
60
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
4 juin 2019
0
Merci
Bonsoir,

merci beaucoup pour ce nouveau fichier qui correspond parfaitement à ma demande. Tout d'abord, je ne savais pas qu'il est possible d'écrire dans les checkbox, cela simplifie effectivement les choses. Ensuite, j'ai compris la structure du code qui repose maintenant sur le clic des checkbox et je vais donc le reproduire dans mon fichier source.

Il me reste une question : les lignes 22 à 49 sont masquées ou apparaissent automatiquement mais que se passe t il si je dois insérer une ligne parmi celles ci ? Je pensais pouvoir me servir de la définition d'un tableau TAB10 mais peut être n'est ce pas possible ?

Je pinaille car ton fichier correspond déjà à mon besoin, c'est juste pour ma culture personnelle de développeur en devenir...

Merci encore et bonne soirée !