Vérifier en VBA si présence (ou pas ) d'un commentaire!

Claudy

XLDnaute Accro
Bonjour à tous,
dans un module, j'utilise la macro ci dessous:

Sub Inserer_Commentaire()
Dim zaza As String
zaza = InputBox("Quelle remarque?", ActiveCell.Value, ActiveCell.Comment.Text)
If zaza = "" Then
ActiveCell.ClearComments
Exit Sub
End If
With ActiveCell
.ClearComments
.AddComment
.Comment.Visible = False
'.Comment.Shape.Select True
.Comment.Text Text:=zaza

End With
End Sub
Cela fonctionne bien si la cellule contient déjà un commentaire, mais si il n'y en a pas, ça bug!
Alors , il faudrait tester la présence d'un commentaire, mais je n'y arrive pas!
Merci d'avance pour votre aide,
Claudy
 

Dranreb

XLDnaute Barbatruc
Re : Vérifier en VBA si présence (ou pas ) d'un commentaire!

Bonjour,
Il me semble qu'un Range a une propriété HasComment booleenne qui permet de savoir si on peut sans erreur soit Créer soi Modifier ou supprimer un commentaire existant.
Cordialement
 

Claudy

XLDnaute Accro
Re : Vérifier en VBA si présence (ou pas ) d'un commentaire!

Bonjour et merci,
Après recherche sur le mot clef "HasComment":
Sub Inserer_Commentaire()
Dim zaza As String
If HasComment(ActiveCell) = True Then

zaza = InputBox("Quelle remarque?", ActiveCell.Value, ActiveCell.Comment.Text)
Else
zaza = InputBox("Quelle remarque?")
End If
If zaza = "" Then
ActiveCell.ClearComments
Exit Sub
End If
With ActiveCell
.ClearComments
.AddComment
.Comment.Visible = False
'.Comment.Shape.Select True
.Comment.Text Text:=zaza

End With
End Sub
Public Function HasComment(Target As Range) As Boolean
'Patrick Molloy, 2001-11-17 programming
On Error Resume Next ' to use in WS: =HasComment(a1)
Dim txt As String ' to use in VBA: MsgBox hascomment(Range("a1"))
txt = Target.Comment.Text 'in Event: MsgBox hascomment(Target)
HasComment = Err.Number = 0
Err.Clear
End Function
Bonne journée,
Claudy
 

Dranreb

XLDnaute Barbatruc
Re : Vérifier en VBA si présence (ou pas ) d'un commentaire!

Après vérification, je me suis donc trompé, il n'y a pas ...Comment parmi les de propriétés Has...
Mais il y aurait pu...
Ils ont sans doute jugé que c'était si simple à tester que ça na vallait pas le coup.
Votre fonction doit être quand même beaucoup plus simple:
Code:
Public Function HasComment(Target As Range) As Boolean
HasComment = Not Target.Comment Is Nothing
End Function

Pion damé !
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12