Bonjour,
Je rends mon tablier ! Voici une petite routine simple mais qui ne fonctionne pas comme je le voudrais.
Je travaille en Excel 2013.
Sur ma feuille, une cellule (C2 nommée "Prestataire") contenant une liste de choix et deux boutons ActiveX.
Selon le choix, le prestataire de services s'affiche avec, dans une autre cellule, son adresse mail.
Le bouton "Envoi_prestataire" dois être actif seulement dans le cas où une adresse mail correspond au prestataire. Et dans le cas contraire, il doit s'inactivé.
Pour la précision, la beauté du geste et l'ergonomie de l'outil développé, j'aimerais que le bouton inactivé le soit ... visiblement ! Or, il ne change pas de tête (backcolor gris clair, couleur de texte encore plus grisé).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tbl As Variant
Dim adr As String
Dim verif As Boolean
If Intersect(Target, Range("Prestataire")) Is Nothing Then Exit Sub
If Target.Address = Range("Prestataire").Address Then
adr = Range("MessA01")
verif = TestAddr(adr) 'Permet de vérifier si l'adresse est valide
If verif = True Then
Envoi_prestataire.ForeColor = &HFF&
Shapes("Envoi_prestataire").OLEFormat.Object.Enabled = True
Else
Envoi_prestataire.ForeColor = vbYellow 'juste pour bien visualiser le changement
' Envoi_prestataire.BackColor = RGB(215, 215, 215)
Shapes("Prestataires").OLEFormat.Object.Enabled = False
Me.OLEObjects("Prestataires").Object.Caption = "Pas de destinataire"
End If
End If
End Sub
Or, cette sale bête ne montre le caption : "Pas de destinataire" que lorsqu'il on clique sur le bouton.
J'aimerais qu'il soit figé, grisé et qu'il affiche "Pas de destinataire" au repos, avant qu'on clique dessus.
Merci pour vos lumières !
Partager