Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2511 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2400156
pphbourgeo​is
Posté le 10-11-2021 à 18:48:57  profilanswer
 

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!

mood
Publicité
Posté le 10-11-2021 à 18:48:57  profilanswer
 

n°2400176
MaybeEijOr​Not
but someone at least
Posté le 11-11-2021 à 10:16:24  profilanswer
 

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.
n°2400179
pphbourgeo​is
Posté le 11-11-2021 à 17:00:48  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
macro word pour intervertir les paragraphes deux par deuxChaînes de caractères en Python
[MySQL] Order by sur caractères spéciauxImpossible de mettre plusieurs favicon sur meme site
VBA Word signetsCompter le nombre de caractères en C
FileReader et caractères accentuésMacro pour copier un tableau avec mot cle de word vers excel et dispat
Mettre en place la mystérieuse page "One More Step" avec reCaptchaVBA Word et Sendkeys
Plus de sujets relatifs à : Mettre en gras des caractères dans un autre document Word


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR