Microsoft 365 Clic droit en B (Quelle que soit la cellule de cette colonne) : doit créer ou ouvrir une nouvelle note*

  • 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

* pré éditée donc... À compléter...
l'objectif est d'avoir une note déjà pré-remplie aux dimensions comme indiqué dans le fichier...
Voici le fichier :


Ceci en module1 dans le classeur mais ça ne fonctionne pas... Des idées, pistes ?

VB:
Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 2 Then ' Vérifie si le clic droit est dans la colonne B
        Cancel = True ' Annule le menu contextuel par défaut
       
        ' Crée ou ouvre une nouvelle note
        Dim cmt As Comment
        If Target.Comment Is Nothing Then
            Set cmt = Target.AddComment
        Else
            Set cmt = Target.Comment
        End If
       
        ' Définit le texte et les dimensions de la note
        cmt.Text "Votre texte pré-édité ici"
        cmt.Shape.Width = 200 ' Largeur en points
        cmt.Shape.Height = 100 ' Hauteur en points
       
        ' Affiche la note
        cmt.Visible = True
    End If
End Sub

Le clic droit en B, doit permettre donc de modifier la note en cours ou la nouvelle note tout en gardant et affichant les dimensions et texte souligné de la note en B5 dans l'exemple.


Merci
 

Pièces jointes

Dernière édition:
Solution
Oui, mais il reste visible. Or, il doit être visible qu'au survol une fois complété.
Dans ce ca tu peux masquer tous les commentaires quand tu cliques ailleurs avec la proc Worksheet_SelectionChange
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Masque les commentaires
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End Sub
du coup tu peux enlever la ligne pour masquer les commentaires dans Worksheet_BeforeRightClick
Bonjour

VB:
Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ne se met pas dans un module standard. mais dans le code de la feuille concernée...

et du coup, l'évènement à utiliser est
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 
Bonjour

VB:
Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ne se met pas dans un module standard. mais dans le code de la feuille concernée...

et du coup, l'évènement à utiliser est
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Merci.

ça me laisse le commentaire affiché, et à remplir. Or, je veux le texte avec les différents repas à compléter et repas souligner, puis que je puisse compléter dans chaque nouvelle note.

Le but est de compléter les différents repas chaque jour pour un suivi de perte de poids... que je reporterais sur l'application "MyFitnessPal".
 
1) déjà ton code affiche une note pré-remplie avec " "Votre texte pré-édité ici"
==> donc le clic droit fait ce qui est codé... rien de plus

2) remplir des infos via une note.. c'est euh..disons.. bizarre.. c'est pas l'objectif d'une note
Excel permet de faire des tableaux justement pour ca..
 
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Target
    If .Column = 2 Then
        Cancel = True
        If .Comment Is Nothing Then
            .AddComment
            .Comment.Shape.Width = 104.5
            .Comment.Shape.Height = 110.6
            .Comment.Shape.TextFrame.Characters.Font.Bold = True
        End If
        SendKeys "%im"
    End If
End With
Cancel = True
End Sub
 
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Target
    If .Column = 2 Then
        Cancel = True
        If .Comment Is Nothing Then
            .AddComment
            .Comment.Shape.Width = 104.5
            .Comment.Shape.Height = 110.6
            .Comment.Shape.TextFrame.Characters.Font.Bold = True
        End If
        SendKeys "%im"
    End If
End With
Cancel = True
End Sub
Une aide me permettant en modifiant ce code, d'avoir la note déjà remplie en partie (avec la nature des repas soulignés), ou il resterait à noter le contenu des différents repas à l'intérieur (voir fichier joint) ?
 
Bonjour,
Pas sûr d'avoir compris !
La procédure ci-dessous permet de copier le commentaire d'une cellule (ici B4, à adapter) et de le coller dans la cellule de la colonne B où on fait un clic droit.
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 2 Then ' Vérifie si le clic droit est dans la colonne B
    Cancel = True ' Annule le menu contextuel par défaut
    
    ' Crée ou ouvre une nouvelle note
    If Target.Comment Is Nothing Then
      Range("B4").Copy
      Target.PasteSpecial Paste:=xlPasteComments
    End If
    Target.Comment.Visible = True
  End If
End Sub
 
Bonjour,
Pas sûr d'avoir compris !
La procédure ci-dessous permet de copier le commentaire d'une cellule (ici B4, à adapter) et de le coller dans la cellule de la colonne B où on fait un clic droit.
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 2 Then ' Vérifie si le clic droit est dans la colonne B
    Cancel = True ' Annule le menu contextuel par défaut
  
    ' Crée ou ouvre une nouvelle note
    If Target.Comment Is Nothing Then
      Range("B4").Copy
      Target.PasteSpecial Paste:=xlPasteComments
    End If
    Target.Comment.Visible = True
  End If
End Sub
c'est ça, sauf que le commentaire doit être visible au survol et modifiable dès la création après clic droit donc comme le code du post #9

Merci beaucoup :=)
 
Dernière édition:
Essayes ceci :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 2 Then ' Vérifie si le clic droit est dans la colonne B
    Cancel = True ' Annule le menu contextuel par défaut
    'Masque les commentaires
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly

    ' Crée ou ouvre une nouvelle note
    If Target.Comment Is Nothing Then
      Range("A1").Copy
      With Target
        .PasteSpecial Paste:=xlPasteComments
        .Comment.Visible = True
        .Comment.Shape.Select
      End With
    End If
  End If
End Sub
 
- 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