Caché une partie d'un tableau

Résolu/Fermé
anthony - 31 janv. 2013 à 07:47
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 janv. 2013 à 23:07
Bonjour,

j'ai tableau de plusieurs colonnes et plusieurs lignes.
En fonction d'une donné, j'ai toute une partir du tableau qui restera vide.
Je pourrais utilisé la fonction groupé mais si je cahce mes formule et protège ma feuille je ne pourrai plus agir dessus.
Y-a-t-il une autre solution et si possible plus automatique,
Par exemple dans une case je met recupérateur, si je mets non, tout la partie du tableau récupérateur se cache.

Meri de vos réponses



A voir également:

9 réponses

Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
31 janv. 2013 à 07:51
Salut,

Oui c'est possible, regarde cette discussion, si c'est une approche à tes attentes on en rediscute

https://forums.commentcamarche.net/forum/affich-26652247-masquer-par-macro-une-colonne-selon-la-valeur-d-une-cellule

0
Bonjour,

Merci apparament c'es t ce que je recherche sauf que mos c'est des lignes et je suis nul en vba et je n'arrive pas à transposer, voici ce que j'aimerais faire :

Si ma céllule RS11(céllule fusionnée)="non"; alors mes lignes 27 à 39 disparaissent.

Merci de ton aide
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 31/01/2013 à 09:39
Re,

Clic droit sur l'onglet de ta feuille/Visualiser le code et colle ce code

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("R11")) Is Nothing Then
If Range("R11") = "Non" Then Range("A27:A39").EntireRow.Hidden = True
If Range("R11") = "Oui" Then Range("A27:A39").EntireRow.Hidden = False
End If
End Sub

ou comme cela

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [R11]) Is Nothing Then
If [R11] = "Non" Then [A27:A39].EntireRow.Hidden = True
If [R11] = "Oui" Then [A27:A39].EntireRow.Hidden = False
End If
End Sub

lorsque tu saisis Non les lignes se masquent et Oui elles s'affichent. Attention aux majuscules et minucules, il faut respecter les consignes saisies dans le code qui peuvent être multiples.

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
RE,
Merci cela fonctionne,
Maintenant qu ej esais faire ca je me dis que je peux le refaire sur d'autre partie du tableau.

Je recopi la formule et change uniquement les numéros de ligne et de la céllule qui contient le "oui et non", changers pour les besoin en "Eté et Automne".

Et la tout bloque que ce soit pour la céllule R11 ou la céllule E11(nouvelle condition), il met :
"Nom ambigu détecté : Worksheet_Change"

Si je supprime la 2ème conditions la 1ère remarche.

Merci de ton aide
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 31/01/2013 à 13:31
Re,

un code VBA est très précis, si tu changes la cellule critère R11, il faut en tenir compte dans le code, comme le critère si tu prévois Non dans le code , non minuscule ne fonctionnera pas de même dans une propriété feuille tu ne peux avoir qu'une seule ligne avec
Private Sub Worksheet_Change(ByVal Target As Range)

et dans ton cas tu l'as certainement doublé d'ou ce message d'erreur
Si tu n'y arrives pas explique sur quelles cellules et lignes tu veux appliquer le code

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Re,

J'aimerais qu'en plus de la première condition, que si la céllule E11 = "Eté";
alors mes lignes 40 à 55 disparaiteront, sinon elle restent


Encoe merci
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
31 janv. 2013 à 14:59
Re,

en clair si R11 Non masque les lignes 27 à 39 Oui les affichent
et si cellule Eté en E11 masque ligne de 40 à 55 et quel est le code pour afficher ces lignes (tu peux d'ailleurs avoir le même code en R11 et E11 comme Open pour afficher les lignes respectives)
0
Re,
Si e11 différent de Eté, ca affiche les lignes 40 à 55
Et j'an aurai une 3ème qui sera du type Si AB11 = oui alors ca affiche, et si AB11 = non ca n'affiche pas les lignes( mais pour ce cas là, je n'ai pas fini mon tableau donc je ne connais pas lignes qui seront concerné)

Merci de ta patiente
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
31 janv. 2013 à 17:38
Re,

comme je t'ai dit un code VBA doit être très précis alors

R11 si Non alors masque les lignes 27 à 39
E11 si Eté masque les lignes 40 à 55
AB11 si Oui ça affiche quelle ligne ?
AB11 si Non ça masque quelle ligne ?
quel est le mot de passe pour afficher les lignes 27 à 39 et 40 à 50
0
Re,
R11 si oui affiche les lignes 27 à 39
E11 si hivers affiche les lignes 40 à 55
Pour les autres si tu peux m'expliquer pour que j'essaie seul car mon tableau n'est pas fini donc je n'est pas encore les lignes.

Merci
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 31/01/2013 à 23:12
Re,

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Union([E11], [R11], [AB11])) Is Nothing Then

If [E11] <> "Hiver" Then [A40:A55].EntireRow.Hidden = True
If [E11] = "Hiver" Then [A40:A55].EntireRow.Hidden = False

If [R11] = "Non" Then [A27:A39].EntireRow.Hidden = True
If [R11] = "Oui" Then [A27:A39].EntireRow.Hidden = False

If [AB11] = "Oui" Then [A56:A70].EntireRow.Hidden = True
If [AB11] = "Non" Then [A56:A70].EntireRow.Hidden = False

End If
End Sub

en résume en E11 = Hiver affiche lignes 40 à 55 et si E11 différent d'hiver Masque les lignes

en R11 Non masque les lignes 27 à 39 et Oui affiche les lignes
Pour AB 11 j'ai fait le contraire Ouyi masque et Non affiche
en AB11 Oui masque les lignes 56 à 70 et Non les masque
A toi de jouer
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Re,
Je vais essayé de le faire demain.

Je me répète mais encore un grand merci
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
31 janv. 2013 à 23:07
Avec plaisir N'hésite pas à revenir sur la discussion si tu rencontres des problèmes
Cordialement
0