OVH Cloud OVH Cloud

Proc évenementielle

6 réponses
Avatar
J
Bonjour à tous [XL2K sr1 et 2, W97SE]

dans un classeur, toutes les saisies se font dans la feuille1, puis sont
copiées dans les feuilles suivantes (600.609.633.etc...), en fonction de
l'article évoqué dans la colonne L10:Ln.

grâce à plein d'entre vous j'ai une sub événementielle qui, lorsque
j'active les feuilles (600.609.633.etc...), masque des lignes selon
certains critères,
*Mais souvent, pour je ne sais quelle raison, toutes les lignes sont
masquées.
J'ai remarqué que si je démasque toutes les lignes de la feuille,
ensuite tout va bien quand je change de feuille.
J'ai pensé ajouté la sub en dessous, mais cela ne fonctionne pas :
erreur 1004
Qui peut me donner une solution (sur le deactivate, et / ou sur la Sub
masquer_les_lignes()
Merci
Cordialement
J@@

********
Private Sub Worksheet_Deactivate()
Cells.EntireRow.Hidden = False
End Sub

'********
Private Sub Worksheet_Activate()
masquer_les_lignes
End Sub
'****
Sub masquer_les_lignes() Dim lavaleur, c, dernièredonnée
dernièredonnée = Feuil1.[A136].End(xlUp).Row
If ActiveSheet.Range("k7") <> "0" Then
'valeur de cumul I9:I135 non nulle
For Each c In ActiveSheet.Range("A9:A" & dernièredonnée)
lavaleur = Application.Sum(Range("C" & c.Row & ":i" & c.Row))
'somme des valeurs de C à I
If lavaleur = 0 Then c.EntireRow.Hidden = True
Next
End If
End Sub
'********

6 réponses

Avatar
roann
Ben déjà, la macro, c'est sûr qu'elle peut pas marcher.
T'as des blocs "IF" sans "END IF", un next qu'est mis
n'importe où.
J'ai essayé de trafiquer mais d'autres erreurs sont
apparues par la suite...

Je sais pas trop.
Avatar
Philippe.R
Bonjour J@@,
Je n'ai testé que le deacivate et te confirme qu'il fonctionne sans souci.
A quel moment précis as tu l'erreur 1004 ?
Ne serait ce point à l'activation de la feuille, avec une ambiguïté possible sur la feuille concernée ?
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"J@@" a écrit dans le message de news:%23t$
Bonjour à tous [XL2K sr1 et 2, W97SE]

dans un classeur, toutes les saisies se font dans la feuille1, puis sont
copiées dans les feuilles suivantes (600.609.633.etc...), en fonction de
l'article évoqué dans la colonne L10:Ln.

grâce à plein d'entre vous j'ai une sub événementielle qui, lorsque
j'active les feuilles (600.609.633.etc...), masque des lignes selon
certains critères,
*Mais souvent, pour je ne sais quelle raison, toutes les lignes sont
masquées.
J'ai remarqué que si je démasque toutes les lignes de la feuille,
ensuite tout va bien quand je change de feuille.
J'ai pensé ajouté la sub en dessous, mais cela ne fonctionne pas :
erreur 1004
Qui peut me donner une solution (sur le deactivate, et / ou sur la Sub
masquer_les_lignes()
Merci
Cordialement
J@@

********
Private Sub Worksheet_Deactivate()
Cells.EntireRow.Hidden = False
End Sub

'********
Private Sub Worksheet_Activate()
masquer_les_lignes
End Sub
'****
Sub masquer_les_lignes() Dim lavaleur, c, dernièredonnée
dernièredonnée = Feuil1.[A136].End(xlUp).Row
If ActiveSheet.Range("k7") <> "0" Then
'valeur de cumul I9:I135 non nulle
For Each c In ActiveSheet.Range("A9:A" & dernièredonnée)
lavaleur = Application.Sum(Range("C" & c.Row & ":i" & c.Row))
'somme des valeurs de C à I
If lavaleur = 0 Then c.EntireRow.Hidden = True
Next
End If
End Sub
'********








Avatar
Philippe.R
Bonjour Roann,
Juste en passant......
Ce bloc if : If lavaleur = 0 Then c.EntireRow.Hidden = True
ne nécessite pas de end if (ici implicite) dans la mesure où il est sur une seule ligne.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"roann" a écrit dans le message de
news:032201c34517$9bb83190$
Ben déjà, la macro, c'est sûr qu'elle peut pas marcher.
T'as des blocs "IF" sans "END IF", un next qu'est mis
n'importe où.
J'ai essayé de trafiquer mais d'autres erreurs sont
apparues par la suite...

Je sais pas trop.
Avatar
AV
Essaye de mettre le "Cells.EntireRow.Hidden = False" dans la proc
"Worksheet_Activate"

AV
Avatar
J
Bonjour à tous
Merci AV, ta solution marche au poil (et c'est plus simple)
Amicalement
J@@ (et bonjour au Québec!!)
"AV"
Essaye de mettre le "Cells.EntireRow.Hidden = False" dans la proc
"Worksheet_Activate"


Avatar
J
Bonjour Philippe
merci à toi,
ben non c'était en quittant la feuille,
mais finalement, j'ai suivi le conseil de AV en glissant le bout de code
dans mon activate, et tout marche impec
Amicalement
J@@

"Philippe.R" <> Je n'ai testé que le deacivate et te confirme qu'il
fonctionne sans souci.
A quel moment précis as tu l'erreur 1004 ?
Ne serait ce point à l'activation de la feuille, avec une ambiguïté
possible sur la feuille concernée ?

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"J@@" > > dans un classeur, toutes les saisies se font dans la
feuille1, puis sont

copiées dans les feuilles suivantes (600.609.633.etc...), en
fonction de


l'article évoqué dans la colonne L10:Ln.

grâce à plein d'entre vous j'ai une sub événementielle qui, lorsque
j'active les feuilles (600.609.633.etc...), masque des lignes selon
certains critères,
*Mais souvent, pour je ne sais quelle raison, toutes les lignes sont
masquées.
J'ai remarqué que si je démasque toutes les lignes de la feuille,
ensuite tout va bien quand je change de feuille.
J'ai pensé ajouté la sub en dessous, mais cela ne fonctionne pas :
erreur 1004
Qui peut me donner une solution (sur le deactivate, et / ou sur la
Sub


masquer_les_lignes()
Merci
Cordialement
J@@

********
Private Sub Worksheet_Deactivate()
Cells.EntireRow.Hidden = False
End Sub

'********
Private Sub Worksheet_Activate()
masquer_les_lignes
End Sub
'****
Sub masquer_les_lignes() Dim lavaleur, c, dernièredonnée
dernièredonnée = Feuil1.[A136].End(xlUp).Row
If ActiveSheet.Range("k7") <> "0" Then
'valeur de cumul I9:I135 non nulle
For Each c In ActiveSheet.Range("A9:A" & dernièredonnée)
lavaleur = Application.Sum(Range("C" & c.Row & ":i" & c.Row))
'somme des valeurs de C à I
If lavaleur = 0 Then c.EntireRow.Hidden = True
Next
End If
End Sub
'********