CAcher une ligne en fonction d'une cellule

tchangy71

XLDnaute Occasionnel
Bonjour,
Étant novice dans le VBA, je souhaiterais un petit coup de main.
Je m'explique :
J'ai donc un tableau qui s'étend sur [A9;E27]
Dans ma cellule E24, j'ai un condition dont les valeurs "vrai" et "faux" sont respectivement "A" et "B"
Je souhaiterai que si c'est la valeur "A" qui est effective cela cache automatiquement ma ligne 25.
Dans le même principe, toujours en fonction de ma valeur "A" (d'une cellule Ex) pour cacher automatiquement plusieurs lignes.
Merci d'avance,
Philippe
 

Hervé

XLDnaute Barbatruc
Re : CAcher une ligne en fonction d'une cellule

salut :)


pas sur d'avoir compris mais afin de faire avancer le bouzin, teste :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("e24") = "A" Then
    Rows(25).Hidden = True
Else
    Rows(25).Hidden = False
End If
Rows(25).Hidden = Range("e24") = "A"
End Sub

code a placer dans le module de la feuille

meme effet mais en 1 ligne de code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Rows(25).Hidden = Range("e24") = "A"
End Sub

a plus
 

tchangy71

XLDnaute Occasionnel
Re : CAcher une ligne en fonction d'une cellule

Merci beaucoup,
C'est exactement cela !!
Petite question (je vais peut être paraitre ridicule) mais comment ce fait il qu'en reproduisant ces lignes pour d'autre cellule/ligne ça ne fonctionne pas ?
(J'ai bien essayer de copier en changeant le nom !!)
Encore merci
 

Hervé

XLDnaute Barbatruc
Re : CAcher une ligne en fonction d'une cellule

re

on n'est jamais ridicule à poser une question :)

ci dessous le meme code commenté, si tu n'y arrives pas remet nous un fichier en pièce jointe, tu as peux etre des subtilités sur ta feuille que l'on ne peut deviner.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("e24") = "A" Then 'si la cellule E24 contient "A"
    Rows(25).Hidden = True 'cacher la ligne 25
Else 'sinon 
    Rows(25).Hidden = False 'ne pas cacher la ligne 25
End If

End Sub

salut
 

tchangy71

XLDnaute Occasionnel
Re : CAcher une ligne en fonction d'une cellule

Non c'est cool en faite j'écrivais une nouvelle macro (Sub/end Sub) alors que je n'avais qu'a rajouter des lignes dans celle existante (la tienne) !!

Juste pour savoir, le nom "Worksheet_Change" et ce qu'il y a entre parenthèse(ByVal Target As Range) sont important ?

Comment je peux faire en sorte qu'il me cache plusieurs lignes ?
du genre :
If Range("e24") = "A" Then 'si la cellule E24 contient "A"
Rows(25).Hidden = True 'cacher la ligne 25 et 26
Else 'sinon
Rows(25).Hidden = False 'ne pas cacher la ligne 25et 26
End If
End Sub

Et encore merci pour tout et surtout pour ta réactivité !
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Re : CAcher une ligne en fonction d'une cellule

yo :)

Juste pour savoir, le nom "Worksheet_Change" et ce qu'il y a entre parenthèse(ByVal Target As Range) sont important ?
oh que oui ^^

ce n'est pas moi qui ai tapé ceci mais l'editeur vba donc on va bien le laisser faire ^^

il existe plusieurs "type" de macro, celle ci est une macro evénementielle, elle se déclenche automatiquement des qu'il y a un changement sur la feuille (Worksheet_Change), target est la cellule active.

Comment je peux faire en sorte qu'il me cache plusieurs lignes ?
facilement en l'écrivant dans la macro comme ceci :

Code:
If Range("e24") = "A" Then 'si la cellule E24 contient "A"
Rows(25).Hidden = True
Rows(26).Hidden = True 'cacher la ligne 25 et 26
Else 'sinon
Rows(25).Hidden = False 'ne pas cacher la ligne 25et 26
End If
tu peux aussi utiliser ce type de syntaxe si tu veux travailler sur des lignes contiguës :

Code:
Rows("25:28").Hidden = True 'cache les lignes 25 à 28
voilà

a plus
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88