OVH Cloud OVH Cloud

Masquer une ligne automatiquement

17 réponses
Avatar
Érico
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une ligne automatiquement.
Si sur cette même ligne, la valeur dans cette cellule est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même cellule, la valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal

7 réponses

1 2
Avatar
Érico
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules contiennent des formules
avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que la macro s'exécute
lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit dans le message de
news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque la
cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu ne
pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden True
End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la rendre
automatique.

C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu peux
la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et rien
ne



change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
______________________________________________________




"J-Dan" a écrit
dans le message de

news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46 et
ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a écrit
dans le message de

news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End(xlUp)).Activate
For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" & c.Row)
<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une
ligne automatiquement.

Si sur cette même ligne, la valeur dans cette cellule
est "0", de masquer

cette ligne.
L'inverse aussi, c'est-à-dire, si cette même cellule,
la



valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.







Avatar
J-Dan
Erico,

dans ce cas, il faut faire le test sur la cellule qui
modifie E46 et E47. Supposons que la cellule A1 modifie
E46, il faut intercepter le changement de valeur de A1
avec :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub

if "les conditions sont remplies pour masquer" then
Rows(46).EntireRow.Hidden = True
End If

Tu peux t'en sortir avec ça ?

J-Dan


-----Message d'origine-----
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules
contiennent des formules

avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que
la macro s'exécute

lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit
dans le message de

news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque la
cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu ne
pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden =
True

End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la rendre
automatique.

C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu peux
la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et rien
ne



change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
______________________________________________________




"J-Dan" a écrit
dans le message de

news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46 et
ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a écrit
dans le message de

news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End
(xlUp)).Activate





For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" & c.Row)
<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une
ligne automatiquement.

Si sur cette même ligne, la valeur dans cette
cellule






est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même
cellule,






la
valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.




.








Avatar
Érico
Il y a 4 cellules liées avec la réponses à E46 et même chose pour E47

Voici la formule dans E46
=SI(ESTERR(LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));((1+E24)/(1+E20))));"
";LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));((1+E24)/(1+E20))))

et E47
=SI(ESTERR(LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));((1+E25)/(1+E20))));
"";LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));((1+E25)/(1+E20))))

Érico


____________________________________________________________________________
_______________
"J-Dan" a écrit dans le message de
news:4ee101c49106$6f2eb5e0$
Erico,

dans ce cas, il faut faire le test sur la cellule qui
modifie E46 et E47. Supposons que la cellule A1 modifie
E46, il faut intercepter le changement de valeur de A1
avec :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub

if "les conditions sont remplies pour masquer" then
Rows(46).EntireRow.Hidden = True
End If

Tu peux t'en sortir avec ça ?

J-Dan


-----Message d'origine-----
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules
contiennent des formules

avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que
la macro s'exécute

lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit
dans le message de

news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque la
cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu ne
pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden >True
End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la rendre
automatique.

C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu peux
la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et rien
ne



change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
______________________________________________________




"J-Dan" a écrit
dans le message de

news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46 et
ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a écrit
dans le message de

news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End
(xlUp)).Activate





For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" & c.Row)
<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une
ligne automatiquement.

Si sur cette même ligne, la valeur dans cette
cellule






est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même
cellule,






la
valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.




.








Avatar
Alain CROS
Bonjour.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E46").Precedents) Is Nothing Then
If "les conditions sont remplies pour masquer" Then
Rows(46).EntireRow.Hidden = True
End If
End If
If Not Intersect(Target, Range("E47").Precedents) Is Nothing Then
If "les conditions sont remplies pour masquer" Then
Rows(47).EntireRow.Hidden = True
End If
End If
End Sub

Alain CROS
Avatar
J-Dan
Erico,

au vu de ces nouvelles infos, tu oublies tout et tu
copies dans ton module de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
If Range("E46") = "" Then Rows(46).EntireRow.Hidden = True
If Range("E47") = "" Then Rows(47).EntireRow.Hidden = True
If Range("E46") <> "" Then Rows(46).EntireRow.Hidden =
False
If Range("E47") <> "" Then Rows(47).EntireRow.Hidden =
False
End Sub

attention au retour de ligne.

J-Dan


-----Message d'origine-----
Il y a 4 cellules liées avec la réponses à E46 et même
chose pour E47


Voici la formule dans E46
=SI(ESTERR(LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));
((1+E24)/(1+E20))));"

";LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));((1+E24)/
(1+E20))))


et E47
=SI(ESTERR(LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));
((1+E25)/(1+E20))));

"";LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));((1+E25)/
(1+E20))))


Érico


_________________________________________________________
___________________

_______________
"J-Dan" a écrit
dans le message de

news:4ee101c49106$6f2eb5e0$
Erico,

dans ce cas, il faut faire le test sur la cellule qui
modifie E46 et E47. Supposons que la cellule A1 modifie
E46, il faut intercepter le changement de valeur de A1
avec :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit
Sub


if "les conditions sont remplies pour masquer" then
Rows(46).EntireRow.Hidden = True
End If

Tu peux t'en sortir avec ça ?

J-Dan


-----Message d'origine-----
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules
contiennent des formules

avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que
la macro s'exécute

lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit
dans le message de

news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque la
cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu ne
pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden =
True

End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la
rendre




automatique.
C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu
peux




la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et rien
ne



change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
_____________________________________________________
_









"J-Dan" a écrit
dans le message de

news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46 et
ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a
écrit






dans le message de
news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End
(xlUp)).Activate





For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" & c.Row)
<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une
ligne automatiquement.

Si sur cette même ligne, la valeur dans cette
cellule






est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même
cellule,






la
valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.




.




.









Avatar
Érico
Ça fonctionné J-Dan!

Un gros merci

Je vais pouvoir dire à mon boss que je suis un pro ;c)

Érico

"J-Dan" a écrit dans le message de
news:50fc01c49121$ffebd390$
Erico,

au vu de ces nouvelles infos, tu oublies tout et tu
copies dans ton module de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
If Range("E46") = "" Then Rows(46).EntireRow.Hidden = True
If Range("E47") = "" Then Rows(47).EntireRow.Hidden = True
If Range("E46") <> "" Then Rows(46).EntireRow.Hidden False
If Range("E47") <> "" Then Rows(47).EntireRow.Hidden False
End Sub

attention au retour de ligne.

J-Dan


-----Message d'origine-----
Il y a 4 cellules liées avec la réponses à E46 et même
chose pour E47


Voici la formule dans E46
=SI(ESTERR(LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));
((1+E24)/(1+E20))));"

";LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));((1+E24)/
(1+E20))))


et E47
=SI(ESTERR(LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));
((1+E25)/(1+E20))));

"";LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));((1+E25)/
(1+E20))))


Érico


_________________________________________________________
___________________

_______________
"J-Dan" a écrit
dans le message de

news:4ee101c49106$6f2eb5e0$
Erico,

dans ce cas, il faut faire le test sur la cellule qui
modifie E46 et E47. Supposons que la cellule A1 modifie
E46, il faut intercepter le changement de valeur de A1
avec :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit
Sub


if "les conditions sont remplies pour masquer" then
Rows(46).EntireRow.Hidden = True
End If

Tu peux t'en sortir avec ça ?

J-Dan


-----Message d'origine-----
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules
contiennent des formules

avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que
la macro s'exécute

lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit
dans le message de

news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque la
cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu ne
pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden >>True
End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la
rendre




automatique.
C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu
peux




la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et rien
ne



change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
_____________________________________________________
_









"J-Dan" a écrit
dans le message de

news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46 et
ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a
écrit






dans le message de
news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End
(xlUp)).Activate





For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" & c.Row)
<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer une
ligne automatiquement.

Si sur cette même ligne, la valeur dans cette
cellule






est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même
cellule,






la
valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.




.




.









Avatar
J-Dan
bonjour Erico,

Un gros merci
je suis heureux d'avoir pu t'aider !


Je vais pouvoir dire à mon boss que je suis un pro
Ne lui dis rien, il le verra par lui-même ;-)))))


ciao,

J-Dan

-----Message d'origine-----
Ça fonctionné J-Dan!

Un gros merci

Je vais pouvoir dire à mon boss que je suis un pro ;c)

Érico

"J-Dan" a écrit
dans le message de

news:50fc01c49121$ffebd390$
Erico,

au vu de ces nouvelles infos, tu oublies tout et tu
copies dans ton module de feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
If Range("E46") = "" Then Rows(46).EntireRow.Hidden =
True

If Range("E47") = "" Then Rows(47).EntireRow.Hidden =
True

If Range("E46") <> "" Then Rows(46).EntireRow.Hidden =
False
If Range("E47") <> "" Then Rows(47).EntireRow.Hidden =
False
End Sub

attention au retour de ligne.

J-Dan


-----Message d'origine-----
Il y a 4 cellules liées avec la réponses à E46 et même
chose pour E47


Voici la formule dans E46
=SI(ESTERR(LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));
((1+E24)/(1+E20))));"

";LOG((1-((E9*(E20-E24))/(ABS(E15)*(1+E24))));((1+E24)/
(1+E20))))


et E47
=SI(ESTERR(LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));
((1+E25)/(1+E20))));

"";LOG((1-((E10*(E20-E25))/(ABS(E18)*(1+E25))));
((1+E25)/


(1+E20))))

Érico


________________________________________________________
_


___________________
_______________
"J-Dan" a écrit
dans le message de

news:4ee101c49106$6f2eb5e0$
Erico,

dans ce cas, il faut faire le test sur la cellule qui
modifie E46 et E47. Supposons que la cellule A1 modifie
E46, il faut intercepter le changement de valeur de A1
avec :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit
Sub


if "les conditions sont remplies pour masquer" then
Rows(46).EntireRow.Hidden = True
End If

Tu peux t'en sortir avec ça ?

J-Dan


-----Message d'origine-----
Oui oui oui, je viens de comprendre

Elle fonctionneeeee, sauf que ces deux cellules
contiennent des formules

avec liaisons.
Donc, on clique jamais ces cellules là. Il faudrait que
la macro s'exécute

lorsque la valeur change.
Est-ce possible?

Merci beaucoup pour ton aide, c'Est bien apprécié.

Érico


"J-Dan" a écrit
dans le message de

news:4e2001c490f3$e3624f20$
Erico,

tu voulais que les lignes 46 ou 47 s'effacent lorsque
la



cellule est vide, elle s'execute donc lorsque tu
supprimes une de ces valeurs (par la touche Suppr). Au
départ tu voulais l'effacement de la ligne si = 0,
ensuite tu as demandé si la cellule est vide.

Plus haut tu as demandé aussi si on pouvait afficher de
nouveau la ligne si la valeur de cette cellule <> 0.
Je ne comprends pas trop, si la ligne est masquée, tu
ne



pourras saisir de valeur dans celle-ci.

Peux-tu éclaircir ton problème ?

J-Dan

-----Message d'origine-----
Salut,

Est-ce que ceci fait fonctionné la macro à chaque fois
qu'il y a un

changement de données dans "E46" et "E47"?

Elle ne fonctionne pas! :c(

Érico



"J-Dan" a écrit
dans le message de

news:43ed01c49038$1ffb0790$
Erico,

pour faire cela, dans le module de la feuille en
question :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E46:E47")) Is Nothing Then
Exit Sub
End if
If ActiveCell = "" Then Rows(ActiveCell.Row).Hidden =
True

End Sub

J-Dan


-----Message d'origine-----
Elle fonctionne et elle masque.
Par contre, je ne sais pas comment faire pour la
rendre




automatique.
C'est-à-dire, dès que le chiffre change, d'exécuter
cette macro.


Merci beaucoup.

Érico de Montréal

"J-Dan" a écrit
dans le message de

news:3cc401c48fb2$2c112bd0$
Erico,

si cette macro n'est destinée qu'à une feuille, tu
peux




la mettre dans le module de la feuille en question.
Tu peux la mettre aussi dans un module standard en
prenant soin d'activer la feuille où elle doit
s'executer



exemple :

Sub Masque()
Worksheets("Feuil2").Activate

For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

J-Dan

-----Message d'origine-----
Je l'ai copié tel quel dans le "Thisworkbook" et
rien






ne
change.
Une modification à faire! Lequel?

J'ai finalement compris pour le Range Rover.

Merci beaucoup pour ton aide.
Érico
____________________________________________________
_






_




"J-Dan" a
écrit






dans le message de
news:366001c48f69$1d9e53f0$
Erico,

il y a juste une modif à faire :

sub Masque()
For Each c In Range("E46:E47")
If Range("E" & c.Row) = "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

C'est quoi le "Rover" ?
laisse tomber, c'est juste un délire ! :-((((


J-Dan

-----Message d'origine-----
Oui mais.....

C'est seulement les lignes 46 avec la cellule E46
et







ligne 47 avec la cellule E47.

C'est quoi le "Rover" ?

Merci

Érico



"J-Dan" a
écrit






dans le message de
news:35f501c48f65$5ec404f0$
bonjour Erico,

essaie cette macro dont tu peux modifier ce qui
concerne



ton "Range" (Rover ?) :

Range(Range("A1"), Range("A65536").End
(xlUp)).Activate





For Each c In Selection
If Range("A" & c.Row) = 0 And Range("A" &
c.Row)







<> "" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next

pour afficher les lignes pour lesquelles ta cellule
est




<> de 0 :

If Range("A" & c.Row) <> 0 Then
Rows(c.Row).EntireRow.Hidden = false
End If

J-Dan

-----Message d'origine-----
Bonjour tout le monde,

Avec Excel 2002, je cherche un moyen de masquer
une








ligne automatiquement.
Si sur cette même ligne, la valeur dans cette
cellule






est "0", de masquer
cette ligne.
L'inverse aussi, c'est-à-dire, si cette même
cellule,






la
valeur est autre
que "0", d'afficher cette ligne.

Est-ce faisaible?

Merci

Érico de Montréal


.




.




.




.




.




.




.




.










1 2