XL 2016 Limiter le remplissage aux cellules blanche seulement

Myst

XLDnaute Occasionnel
Bonjour a tous
J'aurais un problème a soumettre
Lorsque je double clic dans n'importe laquelle des cellules de la feuille un userform s'ouvre, je sélectionne une date qui va aller remplir la cellule concerné après validation
Je cherche a limiter la saisie des dates dans les cellules blanches seulement , donc faire en sorte que l'Userform1 ne s'ouvre pas en dehors des cellules blanche
merci
 

Pièces jointes

  • ESSAI 1.xlsm
    28.7 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonjour Myst,
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target(1).Interior.Color <> 16777215 Then Exit Sub
Cancel = True
Set Calendrier1.ObjetSource = Target
Calendrier1.Show
End Sub
 

Pièces jointes

  • ESSAI(1).xlsm
    34 KB · Affichages: 12

Hervé

XLDnaute Barbatruc
salut :)

myst ?

une petite macro pour connaitre les couleurs d'une cellule specifique :

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
MsgBox Target.Interior.Color
End Sub

a plus
 

eriiic

XLDnaute Barbatruc
Bonjour,

autre idée : ne l'afficher que si le format correspond à un format date avec année, et donc destiné à en recevoir une :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.NumberFormat Like "*yy*" Then
        Cancel = True
        Set Calendrier1.ObjetSource = ActiveCell
        Calendrier1.Show
    End If
End Sub
Plus de souplesse si ta feuille évolue, il s'adapte tout seul. Et plus de restriction de couleur.
eric

PS : j'aime bien ce calendrier.
Tu peux citer ta source si tu l'as toujours stp ?
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Merci Staple, ça ne nous rajeuni pas ;)
Je cherche comment l'initialiser avec la date de la cellule si présente, mais je sèche lamentablement :rolleyes:
Si qq'un a une idée...
eric

PS : et éventuellement pouvoir cercler la date du jour
Edit : bon, ça j'ai trouvé. Il suffit d'enlever 'Or MCS_NOTODAYCIRCLE'.
Pour ajouter la date d'aujourd'hui en bas : supprimer 'Or MCS_NOTODAY'
J'ai trouvé aussi pour ajouter le n° de semaine :
Const MCS_WEEKNUMBERS = &H4& (La semaine 1 est définie comme la première semaine contenant au moins quatre jours.)
 
Dernière édition:

Discussions similaires