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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB WORD] selection texte entre parenthèse + gras

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB WORD] selection texte entre parenthèse + gras

n°1471655
fcoisb
go ! go ! go !
Posté le 07-11-2006 à 15:28:17  profilanswer
 

Bonjour à tous,
 
je cherche désespérément à créer une macro word afin de mettre en gras tous les textes entre parenthèse d'un doc word
Exemple:
salut(salut)salut -> salut(salut)salut
Je peux créer la macro avec la reconnaissance d'un caractere entre deux parenthèses (^?)
mais plusieurs caractères je n'y arrive pas...  
 
pouvez vous m'aider s'il vous plait?

mood
Publicité
Posté le 07-11-2006 à 15:28:17  profilanswer
 

n°1471775
seniorpapo​u
Posté le 07-11-2006 à 18:49:36  profilanswer
 

Bonsoir,
A tester:
 
Sub parentheses()
Dim ouv As Long
Dim i  As Long
 
Dim longcar As Long
 
 
'déclarer les variables
 
ouv = 0
i = 0
With Application.ActiveDocument
For Each ch In .Characters
i = i + 1
If .Characters(i) = "(" Then ouv = i
 If .Characters(i) = " )" Then
    If ouv > 0 Then
     
     
    longcar = i - ouv
     
     If longcar > 0 Then
     .Characters(ouv).Select
     Selection.MoveRight unit:=wdCharacter, Count:=(longcar), Extend:=wdExtend
     Selection.Font.Bold = True
     End If 'loncar
     ouv = 0
    End If  'ouv
 End If
Next ch
End With
End Sub
 
Cordialement
A noter je vois un espace avant la ) qui n'existe pas en faisant edit


Message édité par seniorpapou le 07-11-2006 à 18:51:26
n°1472068
fcoisb
go ! go ! go !
Posté le 08-11-2006 à 10:18:24  profilanswer
 

super ça marche tout seul :-)
Merci beaucoup!  
 
en effet, bizarre pour l'espace devant la parenthèse !

n°1472069
seniorpapo​u
Posté le 08-11-2006 à 10:21:58  profilanswer
 

Bonjour,
j'espère que le traitement ne dure pas trop longtemps
Cordialement

n°1472955
pyrof
Posté le 09-11-2006 à 13:56:00  profilanswer
 

Bonjour,
 
Voici une macro avec un simple rechercher remplacer
 
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
 
 
Qui doit etre nettement plus rapide
 

n°1481869
fcoisb
go ! go ! go !
Posté le 26-11-2006 à 12:51:57  profilanswer
 

ah ouais punèse c'est carrément plus rapide :-)
L'autre truc était vraiment long!
 
merci beaucoup!  
 

n°1481873
fcoisb
go ! go ! go !
Posté le 26-11-2006 à 13:10:02  profilanswer
 

Et un truc simple aussi.. sans doute...
 
comment sélectionner la première ligne d'un document et la supprimer?
 
j'ai ça, mais ça ne m'a pas l'air trés propre:
 
    Selection.MoveUp Unit:=wdScreen, Count:=90
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1

n°1481884
kiki29
Posté le 26-11-2006 à 14:14:27  profilanswer
 

voir pour les caractères génériques http://faqword.free.fr/articles.php?lng=fr&pg=1322

n°1497583
fcoisb
go ! go ! go !
Posté le 31-12-2006 à 17:57:52  profilanswer
 

je galère aussi pour supprimer une ligne contenant un certain mot:
Si je ne mets rien dans             .Replacement.Text = "", ça ne fonctionne pas..  
Il n'y aurait pas une solution plus propre s'il vous plait :-)
 
        Selection.HomeKey Unit:=wdStory
        ScreenUpdating = False
        With Selection.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Replacement.Font.Bold = True
            .MatchWildcards = True
            .Text = "(\(motARechercher*^13^13)"
            .Replacement.Text = ""
            .Forward = True
            .Execute Replace:=wdReplaceAll
        End With

n°1497776
pyrof
Posté le 02-01-2007 à 07:58:03  profilanswer
 

Bonjour, et bonne année.
 
Si tu veux faire un remplacer par rien il faire aucun changement dans le remplacement. Or dans ta macro tu fais .Replacement.Font.Bold = True.
 
Supprime cette ligne et tout ira bien
 

mood
Publicité
Posté le 02-01-2007 à 07:58:03  profilanswer
 

n°1498539
fcoisb
go ! go ! go !
Posté le 04-01-2007 à 00:16:47  profilanswer
 

ah super, ça marche super bien
Merci beaucoup c'est super! :-)

n°2400157
pphbourgeo​is
Posté le 10-11-2021 à 18:52:13  profilanswer
 

Bonjour,  
 
J'ai posé une question dans un autre post du forum concernant cette routine que vous avez écrite il y a bien longtemps...
https://forum.hardware.fr/hfr/Progr [...] 8116_1.htm
Ce serait super sympa si vous pouviez m'aider, car je suis vraiment bloqué...
 
Merci d'avance!
 

pyrof a écrit :

Bonjour,
 
Voici une macro avec un simple rechercher remplacer
 
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
 
 
Qui doit etre nettement plus rapide
 


Message édité par pphbourgeois le 10-11-2021 à 18:53:28

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

  [VB WORD] selection texte entre parenthèse + gras

 

Sujets relatifs
Macro Word qui enregistre ou je veux[HTML]bordure champ texte
probleme pour faire defiler un texte entre 2 imagemail avec contenu texte brut + HTML
onMouseover : changement de texteVBA Word interdiction creation style paragraphe
selection mysql[VBA] De Excel à Word, collage
Remplacer une chaine de caractère par une autre dans du texteTexte css
Plus de sujets relatifs à : [VB WORD] selection texte entre parenthèse + gras


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