Mettre en gras des caractères dans un autre document Word

Mettre en gras des caractères dans un autre document Word - VB/VBA/VBS - Programmation

Marsh Posté le 10-11-2021 à 18:48:57    

Bonjour,
 
Comme c'est mon premier message, je commence par me présenter.
Je ne suis pas un professionnel de l'informatique, juste quelqu'un qui n'a pas peur de mettre de temps en temps ses mains dans les entrailles des logiciels et qui a déjà fait un peu de programmation.
Je débute complètement en VBA (je commence à apprendre en lisant sur le Web) et je suis nouveau sur ce Forum. J'espère que vous serez indulgents si j'écris des bêtises...
 
Je vous contacte car j'essaie d'écrire un script en VBA qui crée un document Word, qui copie du texte dans cet autre document en fonction de paramètres entrés par l'utilisateur dans une boîte de dialogue.
Le document en question est créé ainsi:
 
'Création d'un document Word
   Dim appWD As Word.Application
   Set appWD = CreateObject("Word.Application" )
   appWD.Visible = True
   Set oDoc = appWD.Documents.Add
Jusque là, tout va bien.
 
J'aimerai ensuite que le script VBA mettre en gras le texte situé entre des parenthèses dans le document généré par le script. Et cela, je n 'y arrive pas.
 
J'utilise une routine que j'ai trouvée sur un ce forum (https://forum.hardware.fr/hfr/Progr [...] 8030_1.htm) pour tenter en vain de faire cela.
Voici la routine en question:
 
Private Sub dudule()
Selection.HomeKey unit:=wdStory
ScreenUpdating = False
With Selection.find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .MatchWildcards = True
    .Text = "(\(*\))"
    .Replacement.Text = "\1"
    .Forward = True
    .Execute Replace:=wdReplaceAll
End With
End Sub
 
J'ai essayé de faire différentes modification dans le code et de changer le document actif (comme ceci: oDoc.Activate), et après plusieurs heures d'essais divers, rien n'y fait...
J'ai l'impression qu'il y a des fondamentaux VBA que je n'ai pas appris/compris.
 
Si jamais une bonne âme pouvait m'aider, à résoudre ce mystère ce serait génial...
 
Merci d'avance à vous!

Reply

Marsh Posté le 10-11-2021 à 18:48:57   

Reply

Marsh Posté le 11-11-2021 à 10:16:24    

Bonjour,

 

Dans la macro le rafraîchissement de l'affichage de Word est désactivé, il faut le réactiver je suppose :

 
Code :
  1. Private Sub dudule()
  2. Selection.HomeKey unit:=wdStory
  3. ScreenUpdating = False
  4. With Selection.find
  5.     .ClearFormatting
  6.     .Replacement.ClearFormatting
  7.     .Replacement.Font.Bold = True
  8.     .MatchWildcards = True
  9.     .Text = "(\(*\))"
  10.     .Replacement.Text = "\1"
  11.     .Forward = True
  12.     .Execute Replace:=wdReplaceAll
  13. End With
  14. ScreenUpdating = True
  15. End Sub


Message édité par MaybeEijOrNot le 11-11-2021 à 10:16:37

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 11-11-2021 à 17:00:48    

Bonjour,
 
Merci pour votre réponse. Cela n'a malheureusement pas aidé à résoudre le problème.
Je suis cependant parvenu à trouver la solution :-) (voir ci-dessous).
 
Belle journée à vous !
 
 
Private Sub dudule ()
Set docRange = oDoc.Range(0, 0)
    ScreenUpdating = False
    With docRange.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Font.Bold = True
        .MatchWildcards = True
        .Text = "(\(*\))"
        .Replacement.Text = "\1"
        .Forward = True
        .Execute Replace:=wdReplaceAll
    End With
    ScreenUpdating = True
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed