Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Maragua

XLDnaute Nouveau
Re bonjour,
J'ai un petit souci mon code semble être bon mais ça marche pas :confused:
Mon code permet de détecter dans ma feuille "Matrix" la valeur dans ma case "EnableFF" (Case I5): Oui ou Non et de masquer ma plage de cellule que j'ai nommé "HideFrequentFlyer" si on a "Non" dans la case "EnableFF".
Le souci c'est que la ça ne masque rien. Je pense que j'ai pas mis la bonne dénominations pour masquer mes cellules.

Code:
Private Sub Worksheet_Hide(ByVal Target As Range)
Sheets("Matrix").Select
Target.Adress = "EnableFF"
If Target.Value <> "No" Then
                Sheets("Test page").Select
                .Rows("HideFrequentFlyer").Hidden = True
            Case Else
                Sheets("Test page").Rows("HideFrequnetFlyer").Hidden = False
        End Select
End Sub

Merci de votre aide.
 

Maragua

XLDnaute Nouveau
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Toujours pas :'(
J'ai mis le ode dans ma feuille "Matrix", rien n'y fait.
Je l'ai mis dans ma feuille "Test page", non plus.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Matrix").Select
Target.Adress = "EnableFF"
If Target.Value <> "No" Then
                Sheets("Test page").Active
                Range("HideFrequentFlyer").EntireRow.Hidden = True
            Case Else
                Sheets("Test page").Active
                Range("HideFrequnetFlyer").EntireRow.Hidden = False
        End Select

End Sub

Si vous avez une autre solution, je n'arrive pas a m'en sortir.
 

Maragua

XLDnaute Nouveau
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Je viens de faire les modification suivante:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Matrix").Select
Target.Adress = "EnableFF"
If Target.Value <> "No" Then
Sheets("Test page").Active
Range("HideFrequentFlyer").EntireRow.Hidden = True
Else
Sheets("Test page").Rows("HideFrequnetFlyer").Hidden = False
End If
End Sub

Il me dit qu'il y a un probleme avec Target.Adress +"EnableFF"
Si quelqu'un peut m'aider, merci.
 

Pierrot93

XLDnaute Barbatruc
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Re,

attention le code est dans un module de feuille, si pas d'autre précision s'appliquera à cette même feuille, si feuille différente, la préciser :
Code:
Sheets("NomFeuille").Range("maligne").EntireRow.Hidden = True
 

Maragua

XLDnaute Nouveau
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Merci Pierrot, on avance.
Private Sub Worksheet_SelectionChange(ByVal Cible As Range)
Sheets("Matrix").Cible.Adress = "EnableFF"
If Cible.Value <> "No" Then
Sheets("Test page").Range("HideFrequentFlyer").EntireRow.Hidden = True
End If
If Cible.Value <> "Yes" Then
Sheets("Test page").Range("HideFrequnetFlyer").EntireRow.Hidden = False
End If
End Sub

Le code a l'air nickel.
Sauf qu'a la compile, j'ai un "Runtime Error 438:
Object doesn't support this propert or method"
Sur ma ligne :
Sheets("Matrix").Cible.Adress = "EnableFF"

Actuellement, mon code est dans ma feuille " Matrix"
J'avoue m'avoir jamais compris a quoi servait les modules.
 

Staple1600

XLDnaute Barbatruc
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Bonsoir


Target.Address avec 2 deux est la bonne syntaxe

et ceci n'existe pas
Private Sub Worksheet_Hide(ByVal Target As Range)
PS: Target.Address est un mot réservé par VBA
Ci-dessous extrait de l'aide VBA d'Excel
Exemple

Cet exemple montre comment afficher quatre représentations différentes de la même adresse de cellule dans la feuille Sheet1. Les commentaires donnés dans l'exemple correspondent aux adresses affichées dans les messages.
Set mc = Worksheets("Sheet1").Cells(1, 1)
MsgBox mc.Address() ' $A$1
MsgBox mc.Address(RowAbsolute:=False) ' $A1
MsgBox mc.Address(ReferenceStyle:=xlR1C1) ' R1C1
MsgBox mc.Address(ReferenceStyle:=xlR1C1, _
RowAbsolute:=False, _
ColumnAbsolute:=False, _
RelativeTo:=Worksheets(1).Cells(3, 3)) ' R[-2]C[-2]
 
Dernière édition:

Maragua

XLDnaute Nouveau
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Bonjour tout le monde,
J'ai refactore mon code, il semble mieux mais j'ai un souci je n'arrive pas a faire réapparaitre les cellules si la réponse est oui.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("EnableFF")) Is Nothing Then
        If Target.Value = "No" Then
            Sheets("Test page").Range("HideFrequentFlyer").EntireRow.Hidden = True
            Target.Offset(0, 1) = "No"
            Target.Offset(0, 2) = "No"
        Else: Target.Value = "Yes"
            Sheets("Test page").Range("HideFrequnetFlyer").EntireRow.Hidden = False
        End If
    End If
End Sub

J'ai changé d'erreur ;)
"Application-defined or object-defined error.

Je tourne en rond mais je vais y arriver.
J'ai une autre petite question omment fait-on pour que les macro s'execute automatiquement a l'oyuverture du classeur que l'on soit pas obliger les lancer a chaque coup.
Merci de votre aide.
 

Pierrot93

XLDnaute Barbatruc
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Bonjour,
J'ai une autre petite question omment fait-on pour que les macro s'execute automatiquement a l'oyuverture du classeur que l'on soit pas obliger les lancer a chaque coup.

pour lancer une procédure à l'ouvertre du classeur, il faut utiliser l'événement "Workbook_Open", et ce dans le module "ThisWorkbook"..
Code:
Option Explicit
Private Sub Workbook_Open()
'ton code
End Sub

pour ton erreur, sans plus de détails et sans pouvoir reproduire le cas, difficile à dire....

bonne journée
@+
 

Maragua

XLDnaute Nouveau
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Je mettrais bien mon fichier mais j'ai peur kil soit trop gros 70KO.
 

Pièces jointes

  • Matrix automatique.xls
    69.5 KB · Affichages: 141
  • Matrix automatique.xls
    69.5 KB · Affichages: 208
  • Matrix automatique.xls
    69.5 KB · Affichages: 187

Pierrot93

XLDnaute Barbatruc
Re : Masquer une plage nommee dans une feuille suivant la valeur d'une cellule

Bonjour,

l'événement "Workbook_Open()" ne possède pas d'argument "target"... et dans ce cas attention également à bien préciser la ou les feuilles sur lesquelles tu veux intervenir....
 

Discussions similaires

Statistiques des forums

Discussions
312 841
Messages
2 092 709
Membres
105 517
dernier inscrit
Freddy93