Bonjour,
Dans un document word je voudrais exécuter une série de commandes uniquement sur une portion de texte.
Pour ça j'ai cré un signet au point où je voudrais que la macro s'arrête mais... là je bloque.
J'ai pensé récupérer le numéro de paragraphe du signet et de le comparer avec le paragraphe en cours mais je n'y arrive pas.
Compter les lignes et répéter autant de fois mes commandes ne fonctionne pas non plus car il y a des lignes de titre, des lignes vides... et j'obtiens trop de répétitions.
Avez-vous une idée de comment faire?
Merci
Luca
Code :
- Dim nblignes As Integer
- Dim l As Integer
- nblignes = ActiveDocument.ComputeStatistics(wdStatisticLines)
- Selection.StartOf unit:=wdStory
- Do Until l = nblignes
- With Selection.Find.Font
- .Bold = True
- .Underline = wdUnderlineSingle
- End With
- With Selection.Find
- .Text = "^?"
- .Replacement.Text = ""
- End With
- Selection.Find.Execute
- Selection.MoveLeft unit:=wdCharacter, Count:=1
- Selection.TypeText Text:="§"
- Selection.MoveDown unit:=wdLine, Count:=1
- l = l + 1
-
- Loop
|
Et aussi
Code :
- Dim position_curseur As Long
- Dim position_signet As Long
- If ActiveDocument.Bookmarks.Exists("fin" ) = False Then
- récupérer la position actuelle du curseur
- ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="fin"
- Else
- position_curseur = ????
- position_signet = ????
- end if
- if position_curseur = position_signet then
- GoTo terminer
- else
- exécuter mes commandes de remplacement
- end if
- terminer :
- End Sub
|
Message édité par lucaconfortola le 07-07-2020 à 08:09:10