begin process at 2008 08 22 06:07:03
1 229 779 membres
50 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Commentaire Excel [ Divers / Aide & Documentation ] (Vikingo38)

Commentaire Excel le 21/11/2007 11:04:27

Vikingo38
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

Vikingo38


Re : Commentaire Excel le 21/11/2007 12:39:54

JMO
Membre Club
Réponse acceptée !


 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


jean-marc

Re : Commentaire Excel le 21/11/2007 14:09:11

Vikingo38
Ah merci Jean Marc: je suis le roi de la mise en forme maintenant!

Reste à essayer d'extraire le texte d'un commentaire existant et ajouter plusieurs lignes à la fois: si qq'un a des idées...

Vikingo38


Re : Commentaire Excel le 21/11/2007 19:14:29

JMO
Membre Club


Re,


Fonction qui énumère les commentaires, à adapter pour vb6.

Dim strFileExcel
strFileExcel = "D:\SCRIPTS\Fichiers\ShapeComment.xls"

MsgBox EnumCommentExcel(strFileExcel)

Function EnumCommentExcel(strFileExcel)
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open strFileExcel  
objExcel.Visible = False
objExcel.DisplayAlerts = False

If objExcel.ActiveWorkbook.ActiveSheet.Comments.Count > 0 Then
   For Each Commentaire In objExcel.ActiveWorkbook.ActiveSheet.Comments
       strEnumComment = strEnumComment &vbLf& _
                        "cellule " & Commentaire.Parent.Address & _
                        vbTab& "contenu cellule " & Commentaire.Parent.Value & _
                        Commentaire.Text &vbLf

   Next
   EnumCommentExcel =  strEnumComment
Else
   EnumCommentExcel =  "aucun commentaire dans cette feuille"
End If

objExcel.DisplayAlerts = True
objExcel.Visible = True
objExcel.Quit
Set objExcel = Nothing
End Function


pour la deuxième question, pas compris.

jean-marc

Re : Commentaire Excel le 21/11/2007 19:24:16

JMO
Membre Club


Re,

Pour écrire un commentaire:

Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.ScreenUpdating = True
objExcel.Workbooks.Add

NL=2
Msg = Inputbox("saisie",,"Ceci est un commentaire saisi par inputbox")
Msg1 = vbLf& Msg &vbLf& Msg &vbLf&vbLf& Msg
MsgBox msg1,,"msg1"
With objExcel.Range("A" & NL)
.AddComment
.Comment.Visible = True
.Comment.Text Msg1
.Comment.Shape.Select True
.Comment.Shape.TextFrame.AutoSize = True
'objExcel.Selection.ShapeRange.SetShapesDefaultProperties
.Comment.Visible = False
End With


Evidemment, ajouter un test de validation d'inputbox.

jean-marc

Re : Commentaire Excel le 21/11/2007 19:46:10

JMO
Membre Club
Réponse acceptée !


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


jean-marc

Re : Commentaire Excel le 22/11/2007 09:25:38

Vikingo38
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!

Encore merci

Vikingo38


Re : Commentaire Excel le 22/11/2007 12:30:47

JMO
Membre Club


 Bonjour à tous,

bonjour Vikingo38 ,

Bienvenue sur ce forum puisque tu t'es inscrit hier.

Important:
poser sa question dans le thème approprié !

Au fait, tu utilises quoi ?  vb6+vba ?

Quant à mes réponses, elles sont de type vbs.


jean-marc

Re : Commentaire Excel le 22/11/2007 13:42:09

Vikingo38
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!

Vikingo38



Classé sous : excel, cellule, impossible, commentaire, saisir

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS