XL 2016 VBA Masquer/afficher lignes via Liste (validation des données)

Paillou

XLDnaute Nouveau
Bonjour,

Novice en VBA, j'ai besoin d'aide pour un code.

J'ai dans une cellule (G14) une liste de "STATUT", en validation des données :
"INSCRIT"
"EN COURS"
"CIT"

Je voudrais que

  • si dans la cellule le terme "INSCRIT" ou "EN COURS" les lignes 11&12 sont masqués
  • si dans la cellule le terme "CIT" les lignes 11&12 sont visibles

Mon code actuel

Code:
Private Sub TEST()

statut = range("g14")

if statut ="CIT" then
    rows("11:12").hidden = false

elseif statut ="INSCRIT" or statut ="EN COURS "then
    rows("11:12").hidden = true

end if

end sub

Le code masque les lignes quand le statut "INSCRIT" ou "EN COURS" est sélectionné mais quand le STATUT "CIT" est sélectionné quand les lignes sont masqués ça ne fonctionne pas.


Merci d'avance
 

Paillou

XLDnaute Nouveau
J'ai trouvé le problème, il faut rajouter un espace à INSCRIT et CIT le code est :

VB:
Private Sub TEST()

statut = range("g14")

if statut = "CIT " then

    rows("11:12").hidden = false

elseif statut = "INSCRIT " or statut ="EN COURS "then

    rows("11:12").hidden = true

end if

end sub

J'ai un autre problème ma liste est dans une cellule fusionnée (d8:e9), mon code fonctionne sur une cellule simple mais pas sur fusionnée.

Merci d'avance
 

Paillou

XLDnaute Nouveau
Pardon j'ai trouvé le problème 😅

Pour la cellule fusionnée (d:8e9), il faut noter range("d8"), désolé je débute.

VB:
Private Sub TEST()

statut = range("d8")

if statut = "CIT " then

    rows("11:12").hidden = false

elseif statut = "INSCRIT " or statut ="EN COURS "then

    rows("11:12").hidden = true

end if

end sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Paillou,
Ne vous laissez pas piéger par des espaces, cela vous fera perdre toujours du temps.
Utilisez la fonction TRIM qui supprime automatiquement les espaces, comme :
VB:
Private Sub TEST()
statut = range("d8")
if Trim(statut) = "CIT" then
    rows("11:12").hidden = false
elseif Trim(statut) = "INSCRIT" or statut ="EN COURS" then
    rows("11:12").hidden = true
end if
end sub
( par contre dans votre code ... il manque un espace :
Code:
elseif statut = "INSCRIT " or statut ="EN COURS "then

entre " et then !!! C'est mieux ainsi :
elseif statut = "INSCRIT " or statut ="EN COURS " then
😅
 

Discussions similaires

Réponses
3
Affichages
333

Statistiques des forums

Discussions
314 562
Messages
2 110 729
Membres
110 909
dernier inscrit
François19