XL 2019 Adapter ce code, et améliorer le tableau avec graphique à l'année à y insérer ?

  • 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 à tous les XLDnautes 🙂


Ici 3 cartes virtuelles avec plafond, la première "Am" à 20 € plafonné mensuel (excepté en sept ou on bloque 69,9 €+20 €), "Vt" à 15 € tous les mois et "Ae" à 12,5 €/mois.. et pas tous les mois... Il faut pas dépasser 410 €/an avec tous ces plafonds... parfois ce sera 0 chez "Am" parfois chez d'autres...

Voici l'objectif C2:CE6 insérer par clic droit un commentaire dans ces cellules (plage) ou mieux des lignes 2 à 5 en commençant en C...... (inutile d'insérer un commentaire en A, B par clic droit).. Et le commentaire après clic droit doit être prêt à être saisi comme la trame ici ...

Les plafonds peuvent être révisés chaque année... Mais cette année c'est fixe.

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    On Error GoTo ErrHandler

    ' Ignorer la ligne 1 (en-têtes)
    If Target.Row = 1 Then Exit Sub
   
    ' Ignorer les sélections multiples
    If Target.CountLarge > 1 Then Exit Sub

    ' Cibler la plage C2:CE6 (lignes 2 à 6, colonnes C à CE)
    ' Colonnes : C=3, CE=83
    If Target.Row >= 2 And Target.Row <= 6 Then
        If Target.Column >= 3 And Target.Column <= 83 Then
            Cancel = True
            Application.DisplayCommentIndicator = xlCommentIndicatorOnly

            If Target.Comment Is Nothing Then
                With Target
                    .AddComment ""
                    On Error Resume Next
                    .Comment.Shape.Width = 200
                    .Comment.Shape.Height = 150
                    On Error GoTo ErrHandler
                    .Comment.Visible = True
                End With
            Else
                On Error Resume Next
                Target.Comment.Visible = True
                On Error GoTo ErrHandler
            End If

            Exit Sub
        End If
    End If

    Exit Sub

ErrHandler:
    Resume Next
End Sub
(adapter ou modifier ce code en conséquence)

//!\\ Le problème c'est qu'une fois ouvert, le commentaire reste ouvert, or il devrait se fermer après clic dans une cellule voisine... //!\\


Aussi, je voudrais modifier le classeur pour une meilleure visibilité...
Ainsi qu'y ajouter un graphique...


Merci
 

Pièces jointes

Solution
Bonjour Antho,
On peut masquer tous les commentaires avec clic sur n'importe quelle cellule avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fini
        On Error Resume Next
        For Each cellule In [Tableau58]
            If Not cellule.Comment Is Nothing Then
                cellule.Comment.Visible = False
            End If
        Next cellule
        On Error GoTo 0
Fini:
End Sub

on eput aussi masquer les commentaires que si on clicque dans le tableau avec :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [Tableau58]) Is Nothing Then
        On Error Resume Next
        For Each cellule In [Tableau58]...
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    On Error GoTo ErrHandler

    ' Ignorer la ligne 1 (en-têtes)
    If Target.Row = 1 Then Exit Sub
  
    ' Ignorer les sélections multiples
    If Target.CountLarge > 1 Then Exit Sub

    ' Cibler la plage C2:CE6 (lignes 2 à 6, colonnes C à CE)
    ' Colonnes : C=3, CE=83
    If Target.Row >= 2 And Target.Row <= 6 Then
        If Target.Column >= 3 And Target.Column <= 83 Then
            Cancel = True
            Application.DisplayCommentIndicator = xlCommentIndicatorOnly

            If Target.Comment Is Nothing Then
                With Target
                    .AddComment ""
                    On Error Resume Next
                    .Comment.Shape.Width = 200
                    .Comment.Shape.Height = 150
                    On Error GoTo ErrHandler
                    .Comment.Visible = True
                End With
            Else
                On Error Resume Next
                Target.Comment.Visible = True
                On Error GoTo ErrHandler
            End If

            Exit Sub
        End If
    End If

    Exit Sub

ErrHandler:
    Resume Next
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error Resume Next
    If Target.CountLarge > 1 Then Exit Sub
    If Not Target.Comment Is Nothing Then
        Target.Comment.Delete
        Cancel = True
    End If
    On Error GoTo 0
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Fermer tous les commentaires visibles quand vous changez de cellule
    On Error Resume Next
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ws.Comments.Shape.Visible = False
    On Error GoTo 0
    Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End Sub

Private Sub Worksheet_Deactivate()
    ' Fermer les commentaires en quittant la feuille
    On Error Resume Next
    ActiveSheet.Comments.Shape.Visible = False
    On Error GoTo 0
End Sub

D'autres alternatives ?
 
Bonjour Antho,
On peut masquer tous les commentaires avec clic sur n'importe quelle cellule avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fini
        On Error Resume Next
        For Each cellule In [Tableau58]
            If Not cellule.Comment Is Nothing Then
                cellule.Comment.Visible = False
            End If
        Next cellule
        On Error GoTo 0
Fini:
End Sub

on eput aussi masquer les commentaires que si on clicque dans le tableau avec :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [Tableau58]) Is Nothing Then
        On Error Resume Next
        For Each cellule In [Tableau58]
            If Not cellule.Comment Is Nothing Then
                cellule.Comment.Visible = False
            End If
        Next cellule
        On Error GoTo 0
    End If
Fin:
End Sub

A vous de choisir la macro est répond à votre souci.
 

Pièces jointes

Bonjour Antho,
On peut masquer tous les commentaires avec clic sur n'importe quelle cellule avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fini
        On Error Resume Next
        For Each cellule In [Tableau58]
            If Not cellule.Comment Is Nothing Then
                cellule.Comment.Visible = False
            End If
        Next cellule
        On Error GoTo 0
Fini:
End Sub

on eput aussi masquer les commentaires que si on clicque dans le tableau avec :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [Tableau58]) Is Nothing Then
        On Error Resume Next
        For Each cellule In [Tableau58]
            If Not cellule.Comment Is Nothing Then
                cellule.Comment.Visible = False
            End If
        Next cellule
        On Error GoTo 0
    End If
Fin:
End Sub

A vous de choisir la macro est répond à votre souci.
Merci beaucoup !

Pourquoi ai-je cette option ? Une politique mise en place sur l'ordinateur ?

Hard_Congfigurator (ConfigureDefender) ou SysHardener (Hardentools) où bien autre chose ?


explorer_P2qqQbOik6.png
 
Re,
Aucune idée, c'est un message de sécurité. ( je ne l'ai pas sur mon PC Win10 XL2007 )
L'aviez vous avec d'autres PJ ou est ce nouveau ?

Quant à votre souci, pourquoi figé le commentaires puis ensuite le masquer ? Pourquoi ne pas le masquer automatiquement avec dans votre code :
VB:
.Comment.Visible = False
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
320
Retour