Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Bonjour à tous,
Je voudrais masquer/afficher mes "zones nommées" en fonction de la valeur prise par la cellule L1 (liste déroulante).
Exemple : Si valeur L1 = PMIA => PMIA affichée / PMIB & PMIC masquées.
Merci pour votre aide.
Ils sont sur une même feuille, pas de filtre, j'ai du mal à conceptualiser en l'état. J'imagine d'autres solutions, mais question utiles, tes tableaux auront toujours cette taille, ou bien cela va-t-il varier en fonction de leur contenu ?
Salut YANOU,
Peut être comme ceci
Dans un module Standard
Code:
Sub AfficheMasquePMI()
Rows("7:41").EntireRow.Hidden = False 'Affiche toutes les lignes
Select Case [L1]
Case Is = "PMIA"
Rows("20:30").EntireRow.Hidden = True 'Masque PMIB
Rows("31:40").EntireRow.Hidden = True 'MASQUE PMIC
Case Is = "PMIB"
Rows("7:19").EntireRow.Hidden = True 'Masque PMIA
Rows("31:40").EntireRow.Hidden = True 'MASQUE PMIC
Case Is = "PMIC"
Rows("7:19").EntireRow.Hidden = True 'Masque PMIA
Rows("20:30").EntireRow.Hidden = True 'MASQUE PMIB
End Select
End Sub
Et sur le changement de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$L$1" Then
Call AfficheMasquePMI
End If
End Sub
En espérant que cela corresponde à ta demande
Voir la remarque au post#2 de DON_PETS
@+ Lolote83
Le nombre de ligne change, j'ai donc pensé nommer mes zones pour esquiver ce problème.
N'y connaissant pas grand chose en VBA et en se servant de votre code, peut-être comme cela (?) :
Range("PMIA").EntireRow.Hidden = True 'Masque PMIA
Range("PMIB").EntireRow.Hidden = True 'MASQUE PMIB
Merci pour votre aide.
Hello tous..
bon je vois que les solutions ont fusé..
du coup. suis en retard..
mais je poste quand meme. vu que c'est fait
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("L1")) Is Nothing Then
With ActiveSheet
.Range("PMIA").EntireRow.Hidden = True
.Range("PMIB").EntireRow.Hidden = True
.Range("PMIC").EntireRow.Hidden = True
.Range(Target).EntireRow.Hidden = False
End With
End If
Application.ScreenUpdating = True
End Sub
edit: tiens c'est marrant.. je viens de voir que les premières réponses datent de 13h39...
alors qu'au moment ou j'ai ouvert le post (il y a 5mn) il y avait 0 réponses.....????....??
serais je dans une faille temporelle? :-D
Merci vgendron.
Votre code fonctionne très bien, mais quand j'essaie de le transposer sur mon classeur, cela ne fonctionne plus.
Un problème sur la ligne :
.Range(Target).EntireRow.Hidden = False
Merci pour votre aide.
Salut Vgendron,
De nouveau sur un même post. Par contre cette fois, j'étais le premier 🙂
Mais tu as tout de même apporté la solution idéale pour notre ami Yanou
@+ Lolote83
Hello
Les 3 noms de ma liste déroulante sans espace (1.4404/1.4307 et C276) fonctionnent bien, mais dès qu'il y a un espace dans le nom, cela ne fonctionne plus.
Merci pour ton aide
une modif du code qui devrait t'aider à comprendre..
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("N6")) Is Nothing Then
With ActiveSheet
.UsedRange.Offset(9, 0).EntireRow.Hidden = True
On Error GoTo fin
.Range("PMI" & Target).EntireRow.Hidden = False
Application.ScreenUpdating = True
End With
Exit Sub
End If
fin:
MsgBox "la plage nommée: PMI" & Target & " n'existe pas"
Application.ScreenUpdating = True
End Sub
Bonjour à tous,
Merci vgendron pour ton aide.
Je suis arrivé à ça (voir PJ)
Par contre, est-il possible d'écrire quelque chose dans une cellule sans avoir le message d'erreur ?
Merci.
- 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