Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Edition d'une note

  • Initiateur de la discussion Initiateur de la discussion Francky79
  • 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 !

Francky79

XLDnaute Occasionnel
Bonjour à tous,

Je voudrais éditer une note par macro en cliquant dans la cellule.
J'utilise le code ci-dessous, mais problème, le pavé numérique s'allume ou s'éteint avec ce code ??

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Target.Comment Is Nothing Then
SendKeys "%im"
End If
End Sub

Voir fichier joint,

Merci de votre aide,
 

Pièces jointes

Solution
Re,

En passant par une InputBox. Essaie l'événementielle ci-dessous :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)

Cancel = True 'empêche le mode [Édition] lié au double-clic
BE = Application.InputBox("Quantité en Cde", "Commentaire") 'déninit la boîte d'entrér BE
If Not Target.Comment Is Nothing Then 'condition : si la cellule contient déjà un commentaire
    If BE = False Then Exit Sub ' si bouton [Annuler], sort de la procédure
    Target.Comment.Delete 'efface l'ancien commentqire
End If 'fin de la condition
Target.AddComment 'ajoute un commentaire
Target.Comment.Text Text:="Quantité en Cde" &...
Bonjour Francky, bonjour le forum,

C'est le problème récurrent de SenKeys. Tu peux utiliser : Bouton droit de la souris et l'option Insérer un commentaire ou, Bouton droit de la souris, [m], [Entrée]. C'est sûr, c'est plus long...
 
Merci Robert,

j'ai essayé de modifier le code pour avoir le même résultat avec un double click dans la cellule,
Mais je pense ne pas être assez doué.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Target.Comment Is Nothing Then

End If
End Sub

Il y a t'il un moyen de le faire fonctionner ?
 
Re,

En passant par une InputBox. Essaie l'événementielle ci-dessous :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)

Cancel = True 'empêche le mode [Édition] lié au double-clic
BE = Application.InputBox("Quantité en Cde", "Commentaire") 'déninit la boîte d'entrér BE
If Not Target.Comment Is Nothing Then 'condition : si la cellule contient déjà un commentaire
    If BE = False Then Exit Sub ' si bouton [Annuler], sort de la procédure
    Target.Comment.Delete 'efface l'ancien commentqire
End If 'fin de la condition
Target.AddComment 'ajoute un commentaire
Target.Comment.Text Text:="Quantité en Cde" & Chr(10) & "=  " & BE ' texte du commentaire
Target.Offset(1, 0).Select 'déplace le curseur
Target.Select 'replace le curseur
End Sub
 
Bonjour Robert,

j'essaye de rajouter un bout de code pour autoriser le double click que sur une plage de cellules,
de E5 à E200

If Not Intersect(Target, Range("E5:E200")) Is Nothing Then

Mais évidement je n'arrive pas à le faire marcher.
Si tu peux faire quelque chose pour moi ?

Merci d'avance,
 
Bonjour à tous,

J'essaye de modifier le code pour qu'il s'exécute seulement en E5:E200 mais pas de sucés.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
'ActiveCell.AddComment 'Ajout un Commentaire
Cancel = True 'empêche le mode [Édition] lié au double-clic
BE = Application.InputBox("Quantité en Cde", "Commentaire") 'déninit la boîte d'entrér BE
[B]If Target.Count > 1 Then Exit Sub
  If Not Intersect(Target, Range("E5:E200")) Is Nothing Then
End If[/B]
If Not Target.Comment Is Nothing Then 'condition : si la cellule contient déjà un commentaire
    If BE = False Then Exit Sub ' si bouton [Annuler], sort de la procédure
    Target.Comment.Delete 'efface l'ancien commentqire
End If 'fin de la condition
Target.AddComment 'ajoute un commentaire
Target.Comment.Text Text:="Quantité en Cde" & Chr(10) & "=  " & BE ' texte du commentaire
Target.Offset(1, 0).Select 'déplace le curseur
Target.Select 'replace le curseur
With ActiveCell.Comment.Shape
        .Width = 110 'Largeur commentaire
        .Height = 60 'Hauteur
        .OLEFormat.Object.Font.Size = 12 'Taille du texte
        .OLEFormat.Object.Interior.ColorIndex = 34 'Couleur de fond
        .TextFrame.Characters.Font.ColorIndex = 11 'Couleur de la police
        .TextFrame.Characters.Font.Bold = True 'Ecriture gras
        .OLEFormat.Object.Font.Name = "Bangle" 'Type de police
    End With
End Sub

Si quelqu'un peut m'aider ?

Merci,
 
Bonjour Francky,

je te propose ce code VBA :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [E5:E200]) Is Nothing Then Exit Sub
    Cancel = True 'empêche le mode [Édition] lié au double-clic
    Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
    BE = Application.InputBox("Quantité en Cde", "Commentaire") 'définit la boîte d'entrée BE
    If BE = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
    'condition : si la cellule contient déjà un commentaire, alors efface celui-ci
    If Not .Comment Is Nothing Then .Comment.Delete 'efface l'ancien commentaire
    .AddComment 'ajoute un commentaire
    .Comment.Text "Quantité en Cde" & Chr$(10) & "=  " & BE 'texte du commentaire
    With .Offset(1).Comment.Shape
      .Width = 110 'Largeur commentaire
      .Height = 60 'Hauteur
      With .OLEFormat.Object
        .Interior.ColorIndex = 34 'Couleur de fond
        .Font.Name = "Bangle" 'Type de police
        .Font.Size = 12 'Taille du texte
      End With
      With .TextFrame.Characters.Font
        .ColorIndex = 11 'Couleur de la police
        .Bold = True 'Ecriture gras
      End With
    End With
  End With
End Sub

soan
 
@Francky79

autre écriture possible (sans les nombreux commentaires) :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [E5:E200]) Is Nothing Then Exit Sub
    Cancel = True
    Dim BE: BE = Application.InputBox("Quantité en Cde", "Commentaire")
    If BE = False Then Exit Sub
    If Not .Comment Is Nothing Then .Comment.Delete
    .AddComment: .Comment.Text "Quantité en Cde" & Chr$(10) & "=  " & BE
    With .Offset(1).Comment.Shape
      .Width = 110: .Height = 60
      With .OLEFormat.Object
        .Interior.ColorIndex = 34: .Font.Name = "Bangle": .Font.Size = 12
      End With
      With .TextFrame.Characters.Font
        .ColorIndex = 11: .Bold = True
      End With
    End With
  End With
End Sub

soan
 
Bonsoir Francky,



merci pour ton retour. 🙂

merci aussi d'avoir indiqué que tu as trouvé toi-même la solution. 😁 😜

nan, mais t'inquiètes pas : comme j'ai posté à la fois mon post #8 et mon post #9, j'comprends très bien que du coup, tu n'as pas su lequel des 2 cocher comme solution ; alors tant qu'à faire, tu as coché comme solution ton propre post #10. 😄 (c'est tout naturel, n'est-ce pas ? 🙄)

soan
 
- 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

Réponses
9
Affichages
404
Réponses
4
Affichages
407
Réponses
7
Affichages
334
Réponses
14
Affichages
332
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…