Effacer un masque (zone de texte) sur cellules, en sortant de l'onglet

Zorgloub

XLDnaute Nouveau
Bonjour à la Communauté.

Ayant parcouru la Toile à la recherche de solution à ma question, j'ai bien essayé quelques recettes mais elles ne fonctionnent pas.

Fichier joint: Masque.xls

Onglet "Base": On indique par OUI ou NON si on veut masquer une zone dans l'onglet [Masque] (masquage de cellules précises par une zone de texte).

Onglet [Masque]: Si on a dit oui dans [Base] le masque se génère correctement par une macro incorporée dans la page [Masque] par l'évènement WorkSheet_Activate() OK

Problème à solutionner:
Si le masque à été généré, je veux "simplement" pouvoir l'enlever en sortant de l'onglet [Masque] !!!
J'ai testé divers codes dans l'évènement WorkSheet_Deactivate() qui sont restés en remarque pour votre information... mais rien ne fonctionne.

Merci pour votre aide

Z.
 

Pièces jointes

  • masque.xls
    44.5 KB · Affichages: 119
  • masque.xls
    44.5 KB · Affichages: 129
  • masque.xls
    44.5 KB · Affichages: 128

Dranreb

XLDnaute Barbatruc
Re : Effacer un masque (zone de texte) sur cellules, en sortant de l'onglet

Personnellement, j'évite au maximum d'employer la méthode Range de l'objet Application (Dit "Global" dans le message qui dit qu'elle échoue, pourquoi ?). Je spécifie de préférence en préfixe le nom VBA de la feuille que j'ai pris soin de renommer d'un nom court et clair. J'ai eu un jour la surprise de découvrir que des usagers vivait sans broncher avec un bug qui ne se manifestait qu'en quittant Excel depuis un autre classeur actif. Depuis je n'utilise Range sans qualificateur que si je ne peux fvraiment pas faire autrement.
Vous pouvez utiliser Me.Range("G3") depuis la Sub WorkSheet_DeActivate de la feuille qui n'est donc plus active pour mieux maîtriser ce que vous faites !
 

Zorgloub

XLDnaute Nouveau
Re : Effacer un masque (zone de texte) sur cellules, en sortant de l'onglet

Merci pour cette habitude que vous nous faites partager.
Néanmoins, l'utilisation de Me.Range... ne solutionne malheureusement pas mon problème d'effacement du masque.
La question reste donc ouverte.

Merci.
 

Pierrot93

XLDnaute Barbatruc
Re : Effacer un masque (zone de texte) sur cellules, en sortant de l'onglet

Bonjour,

essaye ceci :
Code:
Private Sub WorkSheet_DeActivate()
Dim Box As Object
If Sheets("Base").Range("G3") = "OUI" Then
'supprimera toutes les formes... 
    For Each Box In Me.Shapes
        Box.Delete
    Next
'ou bien, uniquement celle créée
Me.Shapes("Ztxt1").Delete
End If
End Sub

bon après midi
@+
 

job75

XLDnaute Barbatruc
Re : Effacer un masque (zone de texte) sur cellules, en sortant de l'onglet

Bonjour le fil,

Ou ça tout bêtement :

Code:
Private Sub WorkSheet_DeActivate()
On Error Resume Next
Me.DrawingObjects("Ztxt1").Delete
End Sub
Cela corrige toute erreur...

A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom