Voir le flux RSS

Eric KERGRESSE

VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi.

Noter ce billet
par , 15/03/2019 à 06h03 (47 Affichages)
/
Il s'agit d'obtenir le résultat suivant :

Nom : Capture.JPG
Affichages : 699
Taille : 15,3 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Sub TestMettreUnePuceApresRetourChariot()
 
Dim I As Integer
Dim DocEnCours As Document
 
    Set DocEnCours = ActiveDocument
    With DocEnCours
 
         If .ContentControls.Count = 0 Then Exit Sub
 
         For I = 1 To .ContentControls.Count
             If .ContentControls(I).Type = wdContentControlRichText Then
                MettreUnePuceApresRetourChariot DocEnCours, .ContentControls(I)
             End If
         Next I
 
    End With
    Set DocEnCours = Nothing
 
End Sub
 
Sub MettreUnePuceApresRetourChariot(ByVal DocEnCours2 As Document, ByVal ControleDeContenu As ContentControl)
 
Dim ChaineATester As String
Dim CtrI As Integer, CtrJ As Integer, NbChr40 As Integer, IndexMatrice As Integer
Dim MatriceChr13() As Variant
 
 
    With DocEnCours2
 
         ChaineATester = ControleDeContenu.Range.Text
         NbChr40 = 0
         IndexMatrice = 0
 
         For CtrI = Len(ChaineATester) To 1 Step -1
             For CtrJ = 0 To 255
                 If Mid(ChaineATester, CtrI, 1) = Chr(CtrJ) Then
                    If CtrJ = 40 Then NbChr40 = NbChr40 + 1
                    If CtrJ = 13 Then
                       ReDim Preserve MatriceChr13(IndexMatrice)
                       MatriceChr13(IndexMatrice) = CtrI
                       IndexMatrice = IndexMatrice + 1
                    End If
                    Exit For
                 End If
             Next CtrJ
         Next CtrI
 
         ReDim Preserve MatriceChr13(IndexMatrice)
         MatriceChr13(IndexMatrice) = 1
 
        If NbChr40 > 0 Then Exit Sub
 
        For CtrI = LBound(MatriceChr13, 1) To UBound(MatriceChr13)
            ControleDeContenu.Range.Characters(MatriceChr13(CtrI)).Select
            If MatriceChr13(CtrI) > 1 Then
               Selection.MoveRight unit:=wdCharacter, Count:=1
               Selection.Range = Chr(32)
               Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3913, Unicode:=True
            Else
               Selection.MoveLeft
               Selection.InsertSymbol Font:="Symbol", CharacterNumber:=-3913, Unicode:=True
               Selection.Range = Chr(32)
            End If
        Next CtrI
 
    End With
 
End Sub

Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Viadeo Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Twitter Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Google Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Facebook Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Digg Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Delicious Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog MySpace Envoyer le billet « VBA Word : Insérer une puce automatiquement à chaque saut de ligne dans un contrôle de contenu texte enrichi. » dans le blog Yahoo

Commentaires