Microsoft 365 VBA : Commentaire en B, C, D après clic droit dans n'importe quelle cellule de cette plage ?

  • Initiateur de la discussion Initiateur de la discussion anthoYS
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

anthoYS

XLDnaute Barbatruc
bonjour


l'objectif est de pouvoir dimensionner la case du commentaire prêt à être saisi. et d'afficher une case vierge pour commentaire...
et qu'il n'apparaisse qu'au survol.
pourtant ici, il apparaît le dernier toujours ouvert, or ce n'est pas l'objectif...


Comment faire pour que le fond du commentaire soit blanc par défaut et non jaunâtre ?


voici le code:

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    ' Applique aux colonnes B, C, D (2, 3, 4)
    If Target.Column >= 2 And Target.Column <= 4 Then
        Cancel = True ' Annule le menu contextuel
       
        ' Configuration de l'affichage des commentaires
        Application.DisplayCommentIndicator = xlCommentIndicatorOnly
       
        ' Crée un nouveau commentaire si nécessaire
        If Target.Comment Is Nothing Then
            Target.AddComment Text:="" ' Crée un commentaire vide
        End If
       
        ' Rend le commentaire visible et éditable
        Target.Comment.Visible = True
        Target.Comment.Shape.Select ' Active l'édition immédiate
    End If
    If Target.Comment Is Nothing Then
    Target.AddComment Text:=""
    ' Ne pas mettre Target.Comment.Visible = True
End If
' Ne pas forcer l'affichage du commentaire
End Sub


Merci par avance
 

Pièces jointes

Solution
Et un bonus si tu souhaites changer la couleur du texte du com (j'utilise actuellement sur mon calendrier)
je n'ai pas activé mais si tu souhaites

Code:
Option Explicit
Private lastCmt As Comment

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Const FIRST_COL As Long = 2
    Const LAST_COL  As Long = 4
    
    If Target.Column < FIRST_COL Or Target.Column > LAST_COL Then Exit Sub
    Cancel = True
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly

    If Not lastCmt Is Nothing Then
        If Not lastCmt Is Target.Comment Then lastCmt.Visible = False
        Set lastCmt = Nothing
    End If

    Dim cmt As Comment                     'ou As Object si AddComment2
    If Target.Comment...
Re @patricktoulon , à moins que je me soit trompé,
- quand je fais avec "SendKeys" , le texte ne s'affiche plus et je ne fais que du clic droit sur les deux cellules
- et à chaque clic droit le clavier numérique se vérouille, se dévérouille etc........

Ta solution,
Test3.gif

Avec ou sans DoEvents


Ma Solution, après d'accord je n'ai pas le focus sur le com, j'ai le texte tout le temps et je ne perds pas le clavier numérique
Test2.gif
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour