XL 2019 Boucle VBA

OuiOuiNonNon

XLDnaute Nouveau
Bonjour, est ce que quelqu'un saurait comment faire pour créer une boucle et pour ne pas devoir répéter le code a chaque fois.
Je m'explique, cette partie de code permet d'ajouter un commentaire C. La première ligne du commentaire est représenté par A, la deuxième ligne par B, et la troisième ligne par D (je n'ai pas mis C car c'est le commentaire).
Comment faire pour mettre le code (qui met en gras une partie de la ligne du commentaire) sur chaque ligne du commentaire automatiquement sans avoir à mettre A, B, D, etc...

VB:
            .AddComment C(I, J) 'Ajoute le Commentaire C
            A = InStr(1, C(I, J), ":") + 2 'Recherche à partir de quel caractère il faut mettre en gras
            .Comment.Shape.TextFrame.Characters(Start:=A, Length:=1).Font.Bold = True 'Met en gras les caractères séléctionnés
            B = InStr(A + 1, C(I, J), ":") + 2
            .Comment.Shape.TextFrame.Characters(Start:=B, Length:=1).Font.Bold = True
            D = InStr(B + 1, C(I, J), ":") + 2
            .Comment.Shape.TextFrame.Characters(Start:=D, Length:=1).Font.Bold = True
 
Solution
Bonjour OuiOuiNonNon,

juste un essai :
VB:
Dim chn$, p%, i As Byte
chn = C(i, J): p = 1: .AddComment chn 'Ajoute le Commentaire C
For i = 1 To 3
  p = InStr(p, C(i, J), ":") + 2
  .Comment.Shape.TextFrame.Characters(p, 1).Font.Bold = -1
Next i
si ton commentaire fait moins de 256 caractères,
tu peux mettre p As Byte au lieu de p% ;)


soan

soan

XLDnaute Barbatruc
Inactif
Bonjour OuiOuiNonNon,

juste un essai :
VB:
Dim chn$, p%, i As Byte
chn = C(i, J): p = 1: .AddComment chn 'Ajoute le Commentaire C
For i = 1 To 3
  p = InStr(p, C(i, J), ":") + 2
  .Comment.Shape.TextFrame.Characters(p, 1).Font.Bold = -1
Next i
si ton commentaire fait moins de 256 caractères,
tu peux mettre p As Byte au lieu de p% ;)


soan
 

Nairolf

XLDnaute Accro
Salut Soan et OuiOuiNonNon,

Comme j'ai aussi fait quelque chose, je le mets :
VB:
A = 0
For k = 1 To 3
A = InStr(A + 1, C(i, J), ":") + 1 'Recherche à partir de quel caractère il faut mettre en gras
Z = InStr(A + 1, C(i, J), Chr(10))
.Comment.Shape.TextFrame.Characters(Start:=A, Length:=Z - A).Font.Bold = True 'Met en gras les caractères séléctionnés
A = Z + 1
Next k
 

Discussions similaires

Réponses
22
Affichages
746
Réponses
12
Affichages
558

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko