Afficher ou masquer commentaires avec 1 seul bouton

Bonjour à tous, me revoilà, comme novice on a tjrs des questions - merci encore à vous d'être là.

Ma questions aujourd'hui est : je voudrais 1 bouton sur lequel quand je clique 1ère x tous mes commentaires s'affichent et la 2ème x qu'ils se masquent.

J'aimerais savoir quel bouton ou quel contrôle ou encore quel macro utiliser?

j'ai essayé plusieurs choses mais ou ils s'affichent ou ils se masquent mais jamais les deux choses avec le même bouton.

Comme d'hab... merci d'avance. Roland

Bonjour,

Voir fichier exemple à adapter suivant tes besoins.

Cdlt

Option Explicit
Private Sub cmdAfficherMasquer_Click()
      Dim ind
10    Application.ScreenUpdating = False
20    ind = Application.DisplayCommentIndicator
30    Select Case ind
          Case Is = -1, Is = 0
40            Application.DisplayCommentIndicator = xlCommentAndIndicator
50        Case Else
60            Application.DisplayCommentIndicator = xlCommentIndicatorOnly
70            'Application.DisplayCommentIndicator = xlNoIndicator
80        End Select
End Sub

Bonjour

une autre version avec changement de texte du bouton

Sub Affiche()
Dim wks As Worksheet, MyCmt As Comment
For Each wks In Worksheets
For Each MyCmt In wks.Comments
MyCmt.Visible = True 
Next MyCmt
Next wks
    ActiveSheet.Shapes("Bouton").Select
    Selection.Characters.Text = "Masque"
            Range("A1").Select
End Sub

Sub Masque()
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
    ActiveSheet.Shapes("Bouton").Select
    Selection.Characters.Text = "Affiche"
       Range("A1").Select
End Sub
Sub bouton1()
    ActiveSheet.Shapes("Bouton").Select
    If Selection.Characters.Text = "Masque" Then
    Call Masque
Else
    Call Affiche
End If
End Sub

Cordialeùment

140comments.zip (9.95 Ko)

Re,

Bonjour Amadéus,

J'ai apporté une petite modification au fichier initial en reprenant ton exemple, en déclarant un bouton comme variable publique

Ton commentaire est le bienvenu.

Cdlt.

Code dans ThisWorkbook :

Option Explicit
Public cmd As CommandButton
Private Sub Workbook_Open()
      Dim sH As Worksheet
10    Application.ScreenUpdating = False
20    On Error Resume Next
30        For Each sH In ActiveWorkbook.Worksheets
40            Application.DisplayCommentIndicator = xlCommentIndicatorOnly
              'Application.DisplayCommentIndicator = xlNoIndicator
50        Next
60        Set cmd = ActiveWorkbook.Worksheets("Feuil1").cmdAfficherMasquer
70        cmd.Caption = "Afficher"
End Sub

Dans le modle Feuil1 :

Option Explicit
Private Sub cmdAfficherMasquer_Click()
      Dim ind
10    Application.ScreenUpdating = False
20    ind = Application.DisplayCommentIndicator
30    Select Case ind
          Case Is = -1, Is = 0
40            Application.DisplayCommentIndicator = xlCommentAndIndicator
50            cmdAfficherMasquer.Caption = "Masquer"
60        Case Else
70            Application.DisplayCommentIndicator = xlCommentIndicatorOnly
              'Application.DisplayCommentIndicator = xlNoIndicator
80            cmdAfficherMasquer.Caption = "Afficher"
90        End Select
End Sub

Bonjour

Mon point de vue

En partant du fichier d' Amadéus : 1 seule macro associée au bouton

Sub bouton1()

  With ActiveSheet.Shapes("Bouton").TextFrame.Characters
    If .Text = "Masque" Then
      ' On masque les commentaires
      .Text = "Affiche"
      ' Pour ne pas avoir l'indicateur
      Application.DisplayCommentIndicator = xlNoIndicator
      ' Pour avoir seulement l'indicateur
      'Application.DisplayCommentIndicator = xlCommentIndicatorOnly
    Else
      ' On affiche les commentaires
      .Text = "Masque"
      Application.DisplayCommentIndicator = xlCommentAndIndicator
    End If
  End With
End Sub

@Jean-Eric

Je ne penses pas que cela soit utile de passer en revue toutes les pages, une seule fois affecte tout le classeur (au moins avec 2003)

Penser à le remettre "dans l'état qu'on la trouvé en entrant"

Bonsoir dsl de répondre si tard, reçu de la visite.

Merci à Jean-Eric

j'ai adapté ta solution en macro en supprimant tes 2 premières ligne. Encore merci à toi.

Merci à Amadeus

cela fonctionne sur le fichier reçu uniquement avec ton bouton, je me permets de t'envoyer un pt message privé avec un fichier pour quelques explications.

Merci à Banzaï également

cela fonctionne sur le fichier de Jean-Eric mais pas sur le mien dsl

visual basic apparaît et mets en surbrillance jaune la 1ère ligne.

Bonne soirée à tous et encore merci. Roland

108commentsessai.xlsm (30.13 Ko)

Bonsoir

jearol53 a écrit :

cela fonctionne sur le fichier de Jean-Eric mais pas sur le mien dsl

Le bouton de ton fichier doit s'appeler Bouton

Tu sélectionnes le bouton et son nom qui apparait dans la fenêtre au dessus du numéro des lignes et à gauche des colonnes doit être Bouton

Rechercher des sujets similaires à "afficher masquer commentaires seul bouton"