Vikingo38
Messages postés7Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 3 avril 2012
-
21 nov. 2007 à 11:04
Vikingo38
Messages postés7Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 3 avril 2012
-
22 nov. 2007 à 13:42
Bonjour
Je triture des macros sur excel et me heurte à des difficultés pour gérer les commentaires des cellules: je veux utiliser le double clic sur cellule pour faire saisir des infos à l'utilisateur que je rebalance apès mixage en commentaire de cellule
Pb1: impossible de trouver l'info booléenne de l'existance d'un commentaire dans une cellule donnée! J'ai rusé avec ce code mais avouez que c'est un peu lourd:
' recherche de présence d'un commentaire dans la cellule Target
Set cmt = Worksheets(1).Comments
commentaire = False
For Each c In cmt If c.Parent.Column Target.Column And c.Parent.Row Target.Row Then commentaire = True
Next
C'est pourtant nécessaire car la fonction AddComment plante si il y a déjà un commentaire et inversement, la fonction Comment.Text plante s'il n'y en a pas...
Pb2: impossible de récupérer le texte d'un commentaire déjà présent ce qui est un comble!
Pb3: impossible de changer la police ou la position d'un commentaire: j'ai essayé d'utiliser Shape sans succès
+
Question subsidiaire: j'utilise InputBox pour saisir les infos utilisateur mais il ne propose qu'une ligne (car son résultat est un String)
Y'a-t-il moyen de faire saisir plusieurs lignes via une seule Box?
Merci d'avance de votre aide et de votre indulgence à mon égard
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 21 nov. 2007 à 12:39
Bonjour,
Exemple de Shape à adapter pour vb6:
Const msoFalse = 0
Const msoScaleFromTopLeft = 0
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Screenupdating = True
objExcel.Workbooks.Add
NL=2
With objExcel.Range("A" & NL)
.AddComment
.Comment.Visible = True
.Comment.Text "Ceci est un commentaire"
.Comment.Shape.Select True
objExcel.Selection.ShapeRange.ScaleWidth 2, msoFalse, msoScaleFromTopLeft
objExcel.Selection.ShapeRange.SetShapesDefaultProperties
.Comment.Visible = True
End With
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 21 nov. 2007 à 19:46
Re,
Sur le même principe:
If objExcel.Range("A2").Comment Is Nothing Then
MsgBox "aucun commentaire"
Else
MsgBox "cellule " & objExcel.Range("A2").Comment.Parent.Address & _
objExcel.Range("A2").Comment.Text
End If
Vikingo38
Messages postés7Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 3 avril 2012 22 nov. 2007 à 09:25
Is Nothing!
Je ne connaissais pas Is Nothing!
Je me gausse aujourd'hui mais, il y a deux jours, mes rires étaient moins gras!
Concernant la question 2 que tu n'avais pas compris, c'est parcequ'elle était trop élémentaire: je n'avais pas compris que comment.text renvoyait qqchose (soit le text bien sûr)!
En tout cas merci pour tout, je ne pensais pas que ce type de forum serait aussi efficace. Je ne pensais pas non plus que le champs d'action de VB était si étendu: c'est le fameux principe qui veut que plus on apprend, plus on se rend compte qu'on ne sait rien... Je crois qu'aujourd'hui, je vais m'acheter un bouquin de VB plus épais que ceux que j'ai!
Vikingo38
Messages postés7Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 3 avril 2012 22 nov. 2007 à 13:42
Et ben j'utilise le VB livré avec tout pack office de base soit VB6. Du coup, je n'ai pas accès au aide de VB pure... Mais bon ça me suffit pour bricoler.
Quand au thème approprié, je n'ai trouver que celui-là: je n'ai pas (su) trouver qqchose de spécifique à excel ou tout au moins office.
Peut-être que la rubrique débutant eu été plus appropriée!