Bonjour Í tous,
Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-(
Je vous remercie d'avance pour votre aide,
-----------------------------------------------------------------
Sub ChangerFormatsSélection ()
For Each C In ActiveSheet.UsedRange.Cells
With C
If .Comment Is Nothing Then
.Comment.Shape.OLEFormat.Object.Font.Name = "Tahoma"
.Comment.Shape.OLEFormat.Object.Font.Size = 11
.Comment.Shape.TextFrame.AutoSize = True
End If
End With
Next C
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
db
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous,
Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-(
Je vous remercie d'avance pour votre aide,
-----------------------------------------------------------------
Sub ChangerFormatsSélection ()
For Each C In ActiveSheet.UsedRange.Cells
With C
If .Comment Is Nothing Then
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Emile63
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
> Bonjour Í tous,
> Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-(
> Je vous remercie d'avance pour votre aide,
> -----------------------------------------------------------------
> Sub ChangerFormatsSélection ()
> For Each C In ActiveSheet.UsedRange.Cells
> With C
> If .Comment Is Nothing Then
If not .Comment is Nothing ?
db
Merci DB pour ta judicieuse remarque ;)
L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires.
J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :(
-----------------------------------------
For Each C In Selection
If Not C.Comment Is noting Then
With C.Comment.Shape
.OLEFormat.Object.Font.Name = "Tahoma"
.OLEFormat.Object.Font.Size = 12
End With
End If
Next C
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Brat'ac
Emile63 avait énoncé :
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Bonjour, Pour info un site intéressant avec une page entière qui traite des commentaires http://boisgontierjacques.free.fr/
Emile63 avait énoncé :
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous,
Je souhaite changer les formats des commentaires uniquement de la zone
sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je
vous remercie d'avance pour votre aide,
----------------------------------------------------------------- Sub
ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells
With C
If .Comment Is Nothing Then
If not .Comment is Nothing ?
db
Merci DB pour ta judicieuse remarque ;)
L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui
n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas
pris en compte :( -----------------------------------------
For Each C In Selection
If Not C.Comment Is noting Then
With C.Comment.Shape
.OLEFormat.Object.Font.Name = "Tahoma"
.OLEFormat.Object.Font.Size = 12
End With
End If
Next C
Bonjour,
Pour info un site intéressant avec une page entière qui traite des
commentaires
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Bonjour, Pour info un site intéressant avec une page entière qui traite des commentaires http://boisgontierjacques.free.fr/
Emile63
Le Tuesday, March 2, 2021 Í 11:04:57 AM UTC+1, Brat'ac a écrit :
Emile63 avait énoncé :
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Bonjour, Pour info un site intéressant avec une page entière qui traite des commentaires http://boisgontierjacques.free.fr/
Bonjour Brat'ac , Je me suis effectivement inspiré de ce site (que j'ai dans mes favoris), mais c'est le "if" en cas de non commentaire que je ne maÍ®trise pas. Sauf erreur, Boisgontier le résout avec "On Error", mon souci c'est que si je sélectionne une grande quantitée de cellules (Í la souris), j'aimerais gagner du temps en évitant celles qui n'ont pas de commentaires, avec un "if".. Je ne sais pas si je me suis bien expliqué, j'espère avoir été compréhensible. ;) Encore merci pour votre aide, Bonne journée
Le Tuesday, March 2, 2021 Í 11:04:57 AM UTC+1, Brat'ac a écrit :
Emile63 avait énoncé :
> Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
>> Le 02/03/2021 Í 10:16, Emile63 a écrit :
>>> Bonjour Í tous,
>>> Je souhaite changer les formats des commentaires uniquement de la zone
>>> sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je
>>> vous remercie d'avance pour votre aide,
>>> ----------------------------------------------------------------- Sub
>>> ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells
>>> With C
>>> If .Comment Is Nothing Then
>> If not .Comment is Nothing ?
>>
>> db
> Merci DB pour ta judicieuse remarque ;)
> L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui
> n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas
> pris en compte :( -----------------------------------------
> For Each C In Selection
> If Not C.Comment Is noting Then
> With C.Comment.Shape
> .OLEFormat.Object.Font.Name = "Tahoma"
> .OLEFormat.Object.Font.Size = 12
> End With
> End If
> Next C
Bonjour,
Pour info un site intéressant avec une page entière qui traite des
commentaires
http://boisgontierjacques.free.fr/
Bonjour Brat'ac ,
Je me suis effectivement inspiré de ce site (que j'ai dans mes favoris), mais c'est le "if" en cas de non commentaire que je ne maÍ®trise pas.
Sauf erreur, Boisgontier le résout avec "On Error", mon souci c'est que si je sélectionne une grande quantitée de cellules (Í la souris), j'aimerais gagner du temps en évitant celles qui n'ont pas de commentaires, avec un "if"..
Je ne sais pas si je me suis bien expliqué, j'espère avoir été compréhensible. ;)
Encore merci pour votre aide,
Bonne journée
Le Tuesday, March 2, 2021 Í 11:04:57 AM UTC+1, Brat'ac a écrit :
Emile63 avait énoncé :
Le Tuesday, March 2, 2021 Í 10:42:01 AM UTC+1, db a écrit :
Le 02/03/2021 Í 10:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then
If not .Comment is Nothing ? db
Merci DB pour ta judicieuse remarque ;) L'idée c'est qu'il ne s'arrête pas sur les cellules (dans la sélection) qui n'ont pas de commentaires. J'ai corrigé - If Not ... - Mais le "If" n'est pas pris en compte :( ----------------------------------------- For Each C In Selection If Not C.Comment Is noting Then With C.Comment.Shape .OLEFormat.Object.Font.Name = "Tahoma" .OLEFormat.Object.Font.Size = 12 End With End If Next C
Bonjour, Pour info un site intéressant avec une page entière qui traite des commentaires http://boisgontierjacques.free.fr/
Bonjour Brat'ac , Je me suis effectivement inspiré de ce site (que j'ai dans mes favoris), mais c'est le "if" en cas de non commentaire que je ne maÍ®trise pas. Sauf erreur, Boisgontier le résout avec "On Error", mon souci c'est que si je sélectionne une grande quantitée de cellules (Í la souris), j'aimerais gagner du temps en évitant celles qui n'ont pas de commentaires, avec un "if".. Je ne sais pas si je me suis bien expliqué, j'espère avoir été compréhensible. ;) Encore merci pour votre aide, Bonne journée
MichD
Le 02/03/21 Í 04:16, Emile63 a écrit :
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then .Comment.Shape.OLEFormat.Object.Font.Name = "Tahoma" .Comment.Shape.OLEFormat.Object.Font.Size = 11 .Comment.Shape.TextFrame.AutoSize = True End If End With Next C End Sub
Bonjour, Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1") For Each C In .Comments Set Cel = .Range(C.Parent.Address) If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed .AutoSize = True End With End If Next End With End Sub '---------------------------------------- MichD
Le 02/03/21 Í 04:16, Emile63 a écrit :
Bonjour Í tous,
Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-(
Je vous remercie d'avance pour votre aide,
-----------------------------------------------------------------
Sub ChangerFormatsSélection ()
For Each C In ActiveSheet.UsedRange.Cells
With C
If .Comment Is Nothing Then
.Comment.Shape.OLEFormat.Object.Font.Name = "Tahoma"
.Comment.Shape.OLEFormat.Object.Font.Size = 11
.Comment.Shape.TextFrame.AutoSize = True
End If
End With
Next C
End Sub
Bonjour,
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la
plage o͹ les commentaires doivent avoir un format différent
(Range("A1:A10"))
'----------------------------------------
Sub test()
Dim C As Comment, Cel As Range
With Worksheets("Feuil1")
For Each C In .Comments
Set Cel = .Range(C.Parent.Address)
If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then
With C.Shape.OLEFormat.Object
.Font.Color = vbWhite
.Font.Size = 12
.Interior.Color = vbRed
.AutoSize = True
End With
End If
Next
End With
End Sub
'----------------------------------------
Bonjour Í tous, Je souhaite changer les formats des commentaires uniquement de la zone sélectionnée (s'il y en a) mais ça n'a pas l'air de fonctionner :-( Je vous remercie d'avance pour votre aide, ----------------------------------------------------------------- Sub ChangerFormatsSélection () For Each C In ActiveSheet.UsedRange.Cells With C If .Comment Is Nothing Then .Comment.Shape.OLEFormat.Object.Font.Name = "Tahoma" .Comment.Shape.OLEFormat.Object.Font.Size = 11 .Comment.Shape.TextFrame.AutoSize = True End If End With Next C End Sub
Bonjour, Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1") For Each C In .Comments Set Cel = .Range(C.Parent.Address) If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed .AutoSize = True End With End If Next End With End Sub '---------------------------------------- MichD
MichD
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1")   For Each C In .Comments        Set Cel = .Range(C.Parent.Address)        If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then            With C.Shape.OLEFormat.Object                .Font.Color = vbWhite                .Font.Size = 12                .Interior.Color = vbRed                .AutoSize = True            End With        End If    Next End With End Sub '----------------------------------------
Une autre version, légèrement différente : Il arrive que le dernier caractère soit "Chr(10)" et que la commande "Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère: '------------------------------------------- Sub test() Dim C As Comment, G As String With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With End If Next End With End Sub '------------------------------------------- MichD
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la
plage o͹ les commentaires doivent avoir un format différent
(Range("A1:A10"))
'----------------------------------------
Sub test()
Dim C As Comment, Cel As Range
With Worksheets("Feuil1")
  For Each C In .Comments
       Set Cel = .Range(C.Parent.Address)
       If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then
           With C.Shape.OLEFormat.Object
               .Font.Color = vbWhite
               .Font.Size = 12
               .Interior.Color = vbRed
               .AutoSize = True
           End With
       End If
   Next
End With
End Sub
'----------------------------------------
Une autre version, légèrement différente :
Il arrive que le dernier caractère soit "Chr(10)" et que la commande
"Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère:
'-------------------------------------------
Sub test()
Dim C As Comment, G As String
With Worksheets("Feuil1")
For Each C In .Comments
If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is
Nothing Then
With C.Shape.OLEFormat.Object
.Font.Color = vbWhite
.Font.Size = 12
.Interior.Color = vbRed
If Right(.Text, 1) = Chr(10) Then
G = Left(.Text, Len(.Text) - 1)
End If
C.Text G
.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------------
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1")   For Each C In .Comments        Set Cel = .Range(C.Parent.Address)        If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then            With C.Shape.OLEFormat.Object                .Font.Color = vbWhite                .Font.Size = 12                .Interior.Color = vbRed                .AutoSize = True            End With        End If    Next End With End Sub '----------------------------------------
Une autre version, légèrement différente : Il arrive que le dernier caractère soit "Chr(10)" et que la commande "Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère: '------------------------------------------- Sub test() Dim C As Comment, G As String With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With End If Next End With End Sub '------------------------------------------- MichD
Emile63
Le Tuesday, March 2, 2021 Í 4:28:49 PM UTC+1, MichD a écrit :
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1") For Each C In .Comments Set Cel = .Range(C.Parent.Address) If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed .AutoSize = True End With End If Next End With End Sub '----------------------------------------
Une autre version, légèrement différente : Il arrive que le dernier caractère soit "Chr(10)" et que la commande "Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère: '------------------------------------------- Sub test() Dim C As Comment, G As String With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With End If Next End With End Sub '------------------------------------------- MichD
Bonjour MichD, Désolé pour le délai, j'ai dÍ» résoudre d'autre problèmes entretemps :-) Merci pour tes propositions! J'ai adapté ta dernière proposition et j'ai deux questions. Au niveau de la localisation, je n'ai pas bien compris le fonctionnement de Intersect.. Mon souhait étant de corriger l'ensemble des commentaires de la feuille active (J'ai corriger: With ActiveSheet) Sub UniformiserCommentaires() Dim C As Comment, G As String With ActiveSheet 'With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000")) Is Nothing Then ' Ici j'ai agrandi la zone de recherche.. 'Ne pourrais-t'on pas faire une zone de sélection Í la souris, plutÍ´t qu' en dur dans la procédure With C.Shape.OLEFormat.Object .Font.Name = "Tahoma" .Font.Color = vbBlack .Font.Bold = True .Font.Size = 10 .Interior.Color = RGB(255, 255, 204) If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If ' C.Text G ' Cette ligne plante la macro, je l'ai désactivée et la procédure s'éxécute convenablement. Mais Í quoi sert-elle? ' Ne devrait-elle pas se situer juste en dessus du End if ? .AutoSize = True End With End If Next End With End Sub En te souhaitant une très bonne journée, Emile
Le Tuesday, March 2, 2021 Í 4:28:49 PM UTC+1, MichD a écrit :
> Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la
> plage o͹ les commentaires doivent avoir un format différent
> (Range("A1:A10"))
>
> '----------------------------------------
> Sub test()
> Dim C As Comment, Cel As Range
> With Worksheets("Feuil1")
> For Each C In .Comments
> Set Cel = .Range(C.Parent.Address)
> If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then
> With C.Shape.OLEFormat.Object
> .Font.Color = vbWhite
> .Font.Size = 12
> .Interior.Color = vbRed
> .AutoSize = True
> End With
> End If
> Next
> End With
> End Sub
> '----------------------------------------
Une autre version, légèrement différente :
Il arrive que le dernier caractère soit "Chr(10)" et que la commande
"Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère:
'-------------------------------------------
Sub test()
Dim C As Comment, G As String
With Worksheets("Feuil1")
For Each C In .Comments
If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is
Nothing Then
With C.Shape.OLEFormat.Object
.Font.Color = vbWhite
.Font.Size = 12
.Interior.Color = vbRed
If Right(.Text, 1) = Chr(10) Then
G = Left(.Text, Len(.Text) - 1)
End If
C.Text G
.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------------
MichD
Bonjour MichD,
Désolé pour le délai, j'ai dÍ» résoudre d'autre problèmes entretemps :-)
Merci pour tes propositions!
J'ai adapté ta dernière proposition et j'ai deux questions.
Au niveau de la localisation, je n'ai pas bien compris le fonctionnement de Intersect..
Mon souhait étant de corriger l'ensemble des commentaires de la feuille active (J'ai corriger: With ActiveSheet)
Sub UniformiserCommentaires()
Dim C As Comment, G As String
With ActiveSheet
'With Worksheets("Feuil1")
For Each C In .Comments
If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000")) Is Nothing Then ' Ici j'ai agrandi la zone de recherche..
'Ne pourrais-t'on pas faire une zone de sélection Í la souris, plutÍ´t qu' en dur dans la procédure
With C.Shape.OLEFormat.Object
.Font.Name = "Tahoma"
.Font.Color = vbBlack
.Font.Bold = True
.Font.Size = 10
.Interior.Color = RGB(255, 255, 204)
If Right(.Text, 1) = Chr(10) Then
G = Left(.Text, Len(.Text) - 1)
End If
' C.Text G ' Cette ligne plante la macro, je l'ai désactivée et la procédure s'éxécute convenablement. Mais Í quoi sert-elle?
' Ne devrait-elle pas se situer juste en dessus du End if ?
.AutoSize = True
End With
End If
Next
End With
End Sub
Le Tuesday, March 2, 2021 Í 4:28:49 PM UTC+1, MichD a écrit :
Tu adaptes le nom de l'onglet de la feuille "Feuil1" et l'adresse de la plage o͹ les commentaires doivent avoir un format différent (Range("A1:A10")) '---------------------------------------- Sub test() Dim C As Comment, Cel As Range With Worksheets("Feuil1") For Each C In .Comments Set Cel = .Range(C.Parent.Address) If Not Intersect(Cel, .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed .AutoSize = True End With End If Next End With End Sub '----------------------------------------
Une autre version, légèrement différente : Il arrive que le dernier caractère soit "Chr(10)" et que la commande "Autosize" ne fasse pas le travail comme désiré Í cause de ce caractère: '------------------------------------------- Sub test() Dim C As Comment, G As String With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:B10")) Is Nothing Then With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With End If Next End With End Sub '------------------------------------------- MichD
Bonjour MichD, Désolé pour le délai, j'ai dÍ» résoudre d'autre problèmes entretemps :-) Merci pour tes propositions! J'ai adapté ta dernière proposition et j'ai deux questions. Au niveau de la localisation, je n'ai pas bien compris le fonctionnement de Intersect.. Mon souhait étant de corriger l'ensemble des commentaires de la feuille active (J'ai corriger: With ActiveSheet) Sub UniformiserCommentaires() Dim C As Comment, G As String With ActiveSheet 'With Worksheets("Feuil1") For Each C In .Comments If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000")) Is Nothing Then ' Ici j'ai agrandi la zone de recherche.. 'Ne pourrais-t'on pas faire une zone de sélection Í la souris, plutÍ´t qu' en dur dans la procédure With C.Shape.OLEFormat.Object .Font.Name = "Tahoma" .Font.Color = vbBlack .Font.Bold = True .Font.Size = 10 .Interior.Color = RGB(255, 255, 204) If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If ' C.Text G ' Cette ligne plante la macro, je l'ai désactivée et la procédure s'éxécute convenablement. Mais Í quoi sert-elle? ' Ne devrait-elle pas se situer juste en dessus du End if ? .AutoSize = True End With End If Next End With End Sub En te souhaitant une très bonne journée, Emile
MichD
Bonjour, Pour l'ensemble des commentaires d'une feuille, oublie cette ligne de code et le End If plus bas. '---------------- If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000")) end if '---------------- Avec "Activesheet", la macro peut traiter les commentaires de n'importe quelle feuille. Il faut alors s'assurer que la bonne feuille est active avant de lancer la macro. Pour la feuille entière, la macro se lirait comme suit : '-------------------------- Sub test() Dim C As Comment, G As String With ActiveSheet For Each C In .Comments With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With Next End With End Sub '-------------------------- MichD
Bonjour,
Pour l'ensemble des commentaires d'une feuille, oublie cette ligne de
code et le End If plus bas.
'----------------
If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000"))
end if
'----------------
Avec "Activesheet", la macro peut traiter les commentaires de n'importe
quelle feuille. Il faut alors s'assurer que la bonne feuille est active
avant de lancer la macro.
Pour la feuille entière, la macro se lirait comme suit :
'--------------------------
Sub test()
Dim C As Comment, G As String
With ActiveSheet
For Each C In .Comments
With C.Shape.OLEFormat.Object
.Font.Color = vbWhite
.Font.Size = 12
.Interior.Color = vbRed
If Right(.Text, 1) = Chr(10) Then
G = Left(.Text, Len(.Text) - 1)
End If
C.Text G
.AutoSize = True
End With
Next
End With
End Sub
'--------------------------
Bonjour, Pour l'ensemble des commentaires d'une feuille, oublie cette ligne de code et le End If plus bas. '---------------- If Not Intersect(.Range(C.Parent.Address), .Range("A1:Z1000")) end if '---------------- Avec "Activesheet", la macro peut traiter les commentaires de n'importe quelle feuille. Il faut alors s'assurer que la bonne feuille est active avant de lancer la macro. Pour la feuille entière, la macro se lirait comme suit : '-------------------------- Sub test() Dim C As Comment, G As String With ActiveSheet For Each C In .Comments With C.Shape.OLEFormat.Object .Font.Color = vbWhite .Font.Size = 12 .Interior.Color = vbRed If Right(.Text, 1) = Chr(10) Then G = Left(.Text, Len(.Text) - 1) End If C.Text G .AutoSize = True End With Next End With End Sub '-------------------------- MichD