Microsoft 365 Date masquée

mfb

XLDnaute Occasionnel
Bonjour le Forum,
Via un bouton les cellules comportant la date du 01/01/1970 (Col G) sont masquées en changeant la couleur de noir vers blanc. Cà c ok
Via Target et byval dans le code de la feuille et un clic sur une des dates masquées elle réapparait. Cà aussi C bon.
Pour un petit + peut-on par un nouveau clic la masquer de nouveau sans passer par le bouton ?
En Pj un petit fichier
Par avance merci pour votre aide.
Daniel
 

Pièces jointes

  • Sé Masque cellules-2.xlsm
    20.7 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint, cela le fait. Il faut non pas 'cliquer' la cellule mais la re-sélectionner.
Personnellement, je mettrai ce code dans l'évènement BeforeDoubleClick de la feuille.
Peut-être que si nous avions le fin mot de l'histoire ou du but de ceci, nous pourrions vous proposer éventuellement autre chose.

Cordialement
 

Pièces jointes

  • Sé Masque cellules-2.xlsm
    19.9 KB · Affichages: 6

mfb

XLDnaute Occasionnel
Re,
Merci Roblochon,
Excuse j'avais pas vu qu'il fallait resélectionner.
Mais cela correspond à mon besoin.
Toutefois en testant je me suis aperçu que cela concerne toutes les dates de l'année 1970 par exemple 03/09/1970 alors que je souhaiterai que cela ne concerne les dates 01/01/1970.
J'ai bien essayer de bricoler Year mais sans succès.
Je tends à nouveau la main.
A+
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Si c'est toute la date qu'il faut tester, inutile de 'bricoler' YEAR :)

Dans le code ci-dessous, j'ai limité le traitement à la plage G7:G19 des dates. En effet il est inutile d'appeler l'évènement sur chaque sélection de cellule de toute votre feuille. A adapter à votre (vos) plage(s) de cellules.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
' Si plus d'une cellule sélectionnée ou que target n'est pas dans la plage G7:G19
    If Target.CountLarge > 1 Or Intersect(Target, Range("G7:G19")) Is Nothing Then Exit Sub
    '
    ' Si la valeur de la cellule peut-être interprétée comme une date et que son numéro de série
    ' correspond à celui du 1/1/1970 alors on traite.
    If IsDate(Target.Value) And Target.Value2 = DateSerial(1970, 1, 1) Then
        '
        ' Si masquée on montre, sinon on masque
        If Target.Font.ThemeColor = xlThemeColorDark1 Then
            Target.Font.ThemeColor = xlThemeColorLight1
        Else
            Target.Font.ThemeColor = xlThemeColorDark1
        End If
    End If
End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan