macro cachant des lignes ne marche pas

  • Initiateur de la discussion ama.mau
  • Date de début
A

ama.mau

Guest
hello, cette macro ne marche pas et je ne comprends pas pourquoi :

Function cacher()
Call feuil2.masquer1
cacher = True
End Function
Function montrer()
Call feuil2.afficher1
montrer = True
End Function


Sub masquer1()
ActiveSheet.Rows('71:75').Select
Selection.EntireRow.Hidden = True
Application.ScreenUpdating = True
End Sub

Sub afficher1()
ActiveSheet.Rows('71:75').Select
Selection.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
 

Dan

XLDnaute Barbatruc
Bonjour,

Bizarre cette manière de faire avec des macros Function:sick: . Je suppose que tu pris cela d'un autre fichier ?

Dis moi plutôt quel est le critère pour cacher les lignes et la plage dans laquelle tu veux le faire.

;)
 
A

ama.mau

Guest
En fait il s'agit sur un critère conditionnel de cacher ou non un ceratain nombre de lignes

exemple :

=SI(F70=1;cacher();montrer())

voila, mais les macro ne marchent pas, je n'ai pas d'erreur à l'éxecution... bizarre!

Comment ferais tu ?

merci A+
 
M

Marc_du_78

Guest
Bonjour Dan ama.mau,
Macro évènementielle dans le Private Module de la Feuille en Question :
Soit la cellule 'A1' est modifiée par Saisie (ou par Macro)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$A$1' Then
If Me.Range('A1') = 100 Then
MsgBox '100 en A1'
Else
MsgBox 'Pas 100 en A1'
End If
End If
End Sub

Soit la cellule 'A1' est modifiée par Formule

Private Sub Worksheet_Calculate()
If Me.Range('A1') = 100 Then
MsgBox '100 en A1'
Else
MsgBox 'Pas 100 en A1'
End If
End Sub

A noter que les deux pourraient être mises dans le Private Module de la Feuille au cas où...
PS le Private Module de la Feuille est accessible en cliquant sur le Click Droit de ta souris lorsque que tu pointes sur l'onglet de la dîte feuille, et dans le menu contextuel qui va s'ouvrir tu choisis 'Visualiser le Code', un Private Module VBA va automatiquement surgir et c'est dans ce module que tu copiera le code.
If Target.Address = '$A$1' Then
If Me.Range('A1') = 100 Then
Modifier la référence de cellule et la valeur de celle-ci.
 

Dan

XLDnaute Barbatruc
Bonsoir,

:sick: Ben ama.mau, je dois avoir raté un épisode car je ne vois vraiment pas comment tu arrives à cacher ou montrer tes lignes avec la macro de Marc.

Mais bon tu es servi c'est le principal.

Sinon un fil qui peut te servir : Lien supprimé. La macro agit sur toutes les feuilles du classeur.

;)
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 304
dernier inscrit
halo palo