Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

modifier fenetre commentaires

8 réponses
Avatar
jean-luc Guitard
Bonjour,
Besoin d'aide
dans ce bout de programme la fonction Selection.AutoSize = True ou Selection.Comment.Shape.TextFrame.AutoSize = True
ne fonctionne pas

Sub TextToComment()
Sheets("Planning").[B:B].ClearComments
DerLigne = Sheets("Planning").Range("A65536").End(xlUp).Row
j = 2
For I = 12 To DerLigne Step 2
With Sheets("Planning").Cells(I, 2)
On Error Resume Next
.Comment.Text Sheets(2).Cells(j, 14).Value
.AddComment Sheets(2).Cells(j, 14).Value
.Comment.Visible = True
.Comment.Shape.Select
.Selection.Comment.Shape.TextFrame.AutoSize = True
'.Selection.AutoSize = True
.Comment.Visible = False
End With
j = j + 1
Next I
End Sub
je ne peux donc pas modifier la fenêtre de commentaire
merci d'avance si vous savez?
cordialement

8 réponses

Avatar
michdenis
Bonjour,

Pour moi, ton code n'est pas clair !

Si tu veux ajouter un commentaire dans une cellule
et dimensionner ce dernier selon le texte qu'il contient.

Ceci devrait être suffisant :
'-------------------------------
With Sheets("Planning").Cells(I, 2)
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
C.Shape.OLEFormat.Object.AutoSize = True
End with
'-------------------------------

MichD
--------------------------------------------
"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d32e48c$0$7723$

Bonjour,
Besoin d'aide
dans ce bout de programme la fonction Selection.AutoSize = True ou Selection.Comment.Shape.TextFrame.AutoSize = True
ne fonctionne pas

Sub TextToComment()
Sheets("Planning").[B:B].ClearComments
DerLigne = Sheets("Planning").Range("A65536").End(xlUp).Row
j = 2
For I = 12 To DerLigne Step 2
With Sheets("Planning").Cells(I, 2)
On Error Resume Next
.Comment.Text Sheets(2).Cells(j, 14).Value
.AddComment Sheets(2).Cells(j, 14).Value
.Comment.Visible = True
.Comment.Shape.Select
.Selection.Comment.Shape.TextFrame.AutoSize = True
'.Selection.AutoSize = True
.Comment.Visible = False
End With
j = j + 1
Next I
End Sub
je ne peux donc pas modifier la fenêtre de commentaire
merci d'avance si vous savez?
cordialement
Avatar
michdenis
J'oubliais,

Ce serait très bien de déclarer la variable C comme ceci en début de procédure
Dim C As Comment


MichD
--------------------------------------------
Avatar
jean-luc Guitard
merci, ca fonctionne ...
par contre si je ne mets pas On Error Resume Next
il trouve une erreur d'exécution 1004 à la ligne
C.Shape.OLEFormat.Object.AutoSize = True



"michdenis" a écrit dans le message de groupe de discussion : iguqjv$ud1$

J'oubliais,

Ce serait très bien de déclarer la variable C comme ceci en début de procédure
Dim C As Comment


MichD
--------------------------------------------
Avatar
michdenis
Tu pourrais adapter la procédure comme ceci si tu as
des cellules vides dans Sheets(2).Cells(j, 14).Value

'-----------------------------------
With Sheets("Planning").Cells(i, 2)
If IsEmpty(Sheets(2).Cells(j, 14).Value) Then
Set C = .AddComment()
Else
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
End If
C.Shape.OLEFormat.Object.AutoSize = True
End With
'-----------------------------------

Est-ce que tu peux donner un exemple de la valeur du
commentaire lorsque cette ligne de code bogue ?

C.Shape.OLEFormat.Object.AutoSize = True

MichD
--------------------------------------------
Avatar
michdenis
En passant, cette ligne de code ajoute un commentaire vide
Set C = .AddComment()

À toi de décider si toutes les cellules doivent contenir un commentaire.
Si tu réponds par la négative, tu devras modifier un peu la procédure :

With Sheets("Planning").Cells(i, 2)
If not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"michdenis" a écrit dans le message de groupe de discussion : igv6dr$pcs$

Tu pourrais adapter la procédure comme ceci si tu as
des cellules vides dans Sheets(2).Cells(j, 14).Value

'-----------------------------------
'-----------------------------------

Est-ce que tu peux donner un exemple de la valeur du
commentaire lorsque cette ligne de code bogue ?

C.Shape.OLEFormat.Object.AutoSize = True

MichD
--------------------------------------------
Avatar
jean-luc Guitard
Merci ça fonction parfaitement
Par commentaires j'ai plusieurs lignes
Peut-on Formater la fenêtre de commentaires de façon que les lignes des commentaires ne dépassent pas 100 caractères
je ne sais pas faire est ce possible?


"michdenis" a écrit dans le message de groupe de discussion : igv6rp$qg8$

En passant, cette ligne de code ajoute un commentaire vide
Set C = .AddComment()

À toi de décider si toutes les cellules doivent contenir un commentaire.
Si tu réponds par la négative, tu devras modifier un peu la procédure :

With Sheets("Planning").Cells(i, 2)
If not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"michdenis" a écrit dans le message de groupe de discussion : igv6dr$pcs$

Tu pourrais adapter la procédure comme ceci si tu as
des cellules vides dans Sheets(2).Cells(j, 14).Value

'-----------------------------------
'-----------------------------------

Est-ce que tu peux donner un exemple de la valeur du
commentaire lorsque cette ligne de code bogue ?

C.Shape.OLEFormat.Object.AutoSize = True

MichD
--------------------------------------------
Avatar
michdenis
Une façon de faire, tu coupes la chaîne de caractères de la cellule
à chaque 100 caractères et tu ajoutes le caractères Chr(10) à la ligne.

Dim C As Comment, LeTexte As String
Dim A As Integer, i As Long, j As Long

With Sheets("Planning").Cells(i, 2)
If Not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
For A = 1 To Len(Sheets(2).Cells(j, 14).Value) Step 100
LeTexte = LeTexte & Mid(Sheets(2).Cells(j, 14).Value, A, 100) & Chr(10)
Next
LeTexte = Left(LeTexte, Len(LeTexte) - 1)
Set C = .AddComment(LeTexte)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d333895$0$32435$

Merci ça fonction parfaitement
Par commentaires j'ai plusieurs lignes
Peut-on Formater la fenêtre de commentaires de façon que les lignes des commentaires ne dépassent pas 100 caractères
je ne sais pas faire est ce possible?


"michdenis" a écrit dans le message de groupe de discussion : igv6rp$qg8$

En passant, cette ligne de code ajoute un commentaire vide
Set C = .AddComment()

À toi de décider si toutes les cellules doivent contenir un commentaire.
Si tu réponds par la négative, tu devras modifier un peu la procédure :

With Sheets("Planning").Cells(i, 2)
If not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"michdenis" a écrit dans le message de groupe de discussion : igv6dr$pcs$

Tu pourrais adapter la procédure comme ceci si tu as
des cellules vides dans Sheets(2).Cells(j, 14).Value

'-----------------------------------
'-----------------------------------

Est-ce que tu peux donner un exemple de la valeur du
commentaire lorsque cette ligne de code bogue ?

C.Shape.OLEFormat.Object.AutoSize = True

MichD
--------------------------------------------
Avatar
jean-luc Guitard
Merci michel Denis pour la réponse ça fonctionne à merveille
bonne journée

"michdenis" a écrit dans le message de groupe de discussion : igvf4e$i72$

Une façon de faire, tu coupes la chaîne de caractères de la cellule
à chaque 100 caractères et tu ajoutes le caractères Chr(10) à la ligne.

Dim C As Comment, LeTexte As String
Dim A As Integer, i As Long, j As Long

With Sheets("Planning").Cells(i, 2)
If Not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
For A = 1 To Len(Sheets(2).Cells(j, 14).Value) Step 100
LeTexte = LeTexte & Mid(Sheets(2).Cells(j, 14).Value, A, 100) & Chr(10)
Next
LeTexte = Left(LeTexte, Len(LeTexte) - 1)
Set C = .AddComment(LeTexte)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d333895$0$32435$

Merci ça fonction parfaitement
Par commentaires j'ai plusieurs lignes
Peut-on Formater la fenêtre de commentaires de façon que les lignes des commentaires ne dépassent pas 100 caractères
je ne sais pas faire est ce possible?


"michdenis" a écrit dans le message de groupe de discussion : igv6rp$qg8$

En passant, cette ligne de code ajoute un commentaire vide
Set C = .AddComment()

À toi de décider si toutes les cellules doivent contenir un commentaire.
Si tu réponds par la négative, tu devras modifier un peu la procédure :

With Sheets("Planning").Cells(i, 2)
If not IsEmpty(Sheets(2).Cells(j, 14).Value) Then
Set C = .AddComment(Sheets(2).Cells(j, 14).Value)
C.Shape.OLEFormat.Object.AutoSize = True
End If
End With



MichD
--------------------------------------------
"michdenis" a écrit dans le message de groupe de discussion : igv6dr$pcs$

Tu pourrais adapter la procédure comme ceci si tu as
des cellules vides dans Sheets(2).Cells(j, 14).Value

'-----------------------------------
'-----------------------------------

Est-ce que tu peux donner un exemple de la valeur du
commentaire lorsque cette ligne de code bogue ?

C.Shape.OLEFormat.Object.AutoSize = True

MichD
--------------------------------------------