IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Effacement d'un commentaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut Effacement d'un commentaire
    Bonjour,

    Je ne comprends pas pourquoi le commentaire de la cellule active n'est pas effacé par ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Target.Offset(0, 0).Value = 0 Then
        Target = [i2] & " " & Range("G" & Target.Row)
            Else
                Target = ""
                Target.ClearComments
            End If
            Cancel = True
    En vous remerciant par avance pour vos lumières,
    Cordialement,
    jp

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si le commentaire n'est pas effacé, c'est que la condition n'est pas remplie.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Je ne comprends pas ! Il y a bien un commentaire dans la cellule et si je déroule le code "pas à pas", le curseur passe bien par :
    ...et il ne se passe rien.

    Je me demandais si la syntaxe avec Target était correcte et/ou s'il fallait privilégier un "Delete" plutôt qu'un "Clear" ?!

    Cdt

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonsoir,

    Désolé, j'ai trouvé par tâtonnement...

    Les feuilles sont protégées comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each wSheet In Worksheets
          wSheet.Protect Password:="xxx", userinterfaceonly:=True
    Next wSheet
    Efface bien la cellule, mais :
    a manifestement besoin d'une déprotection temporaire - quid de userinterfaceonly:= True ??

    Cordialement,
    jp

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Bonsoir,

    Tout est là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim UnionRange 'As Range
     
    Set UnionRange = Union(Me.Range("Plage_Saisies"), Me.Range("Plage_Matricules"))
     
        If Not Intersect(UnionRange, Target) Is Nothing Then
            Application.OnKey "%{RETURN}", "Inser_Comment"
        Else
            Application.OnKey "%{RETURN}", ""
        End If
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        If Target.Count > 1 Then Exit Sub
     
        If Not Intersect(Target, Range("Plage_Saisies")) Is Nothing Then
     
            If Target.Offset(0, 0).Value = 0 Then
                Target = [i2] & " " & Range("G" & Target.Row)
            Else
                Target = ""
                Target.ClearComments
            End If
            Cancel = True
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Option Explicit
    Option Private Module
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Sub Inser_Comment()
    Dim reponse 'As Byte
    Dim Cancel As Byte
    Dim Target
    Dim rép As Byte
     
        With ActiveCell
     
        If .NoteText = "" And ActiveCell <> 0 Then
            reponse = InputBox("Entrez votre commentaire :")
            If reponse <> "" Then
                ActiveSheet _
                    .Unprotect Password:="xxx"
                    .AddComment reponse & Chr(10) & "[" & "Note de " & Last_User & " du " & Format(Date, "d mmm yyyy") & "]"  'Format(Now, "hh:mm")
     
                With .Comment.Shape.OLEFormat.Object.Font
                        .Name = "Tverdana"
                        .Size = 10
                        .FontStyle = "Normal"
                        .ColorIndex = 5  'bleu
                End With
    '
                With .Comment
                    .Visible = True
                    .Shape.Top = ActiveCell.Top + 25
                    .Shape.Select
                     Selection.AutoSize = True
                     Selection.Interior.ColorIndex = 6 'jaune
     
                     DoEvents
                     Sleep 2500
                    .Visible = False
                End With
     
                ActiveSheet.Protect Password:="xxx", userinterfaceonly:=True '
            End If
        Else
            With ActiveCell
                If .NoteText <> "" And ActiveCell <> 0 Then
                    rép = MsgBox("Voulez-vous effacer ce commentaire ?", vbYesNo + vbQuestion, "")
     
                    If rép = vbNo Then Exit Sub
                    ActiveSheet.Unprotect Password:="xxx"
                    ActiveCell.ClearComments
                    ActiveSheet.Protect Password:="xxx", userinterfaceonly:=True '
                End If
            End With
        End If
    '    Cancel = True
        End With
    End Sub
    Cdt

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 593
    Points : 153
    Points
    153
    Par défaut
    Finalement, ça n'a pas l'air d'être lié à la protection de la feuille, ni du classeur :-(

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LibreOffice] Effacer les horaires des modifications et des commentaires
    Par yaumeu dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 17/11/2020, 00h27
  2. Réponses: 31
    Dernier message: 12/05/2016, 10h12
  3. Commentaires du fichier .XML automatiquement effacés ?
    Par Peter_TLSE dans le forum Général Python
    Réponses: 3
    Dernier message: 30/04/2014, 09h18
  4. [XL-2002] Commentaires générés par code s'effacent
    Par Delioneras dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2013, 13h37
  5. Pb effacement onglet commentaires
    Par wanbihan dans le forum Word
    Réponses: 2
    Dernier message: 07/03/2013, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo