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

selection texte entre parenthèse + gras [VB WORD] - VB/VBA/VBS - Programmation

Marsh Posté le 07-11-2006 à 15:28:17    

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?

Reply

Marsh Posté le 07-11-2006 à 15:28:17   

Reply

Marsh Posté le 07-11-2006 à 18:49:36    

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
Reply

Marsh Posté le 08-11-2006 à 10:18:24    

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

Reply

Marsh Posté le 08-11-2006 à 10:21:58    

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

Reply

Marsh Posté le 09-11-2006 à 13:56:00    

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
 

Reply

Marsh Posté le 26-11-2006 à 12:51:57    

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

Reply

Marsh Posté le 26-11-2006 à 13:10:02    

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

Reply

Marsh Posté le 26-11-2006 à 14:14:27    

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

Reply

Marsh Posté le 31-12-2006 à 17:57:52    

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

Reply

Marsh Posté le 02-01-2007 à 07:58:03    

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
 

Reply

Marsh Posté le 02-01-2007 à 07:58:03   

Reply

Marsh Posté le 04-01-2007 à 00:16:47    

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

Reply

Marsh Posté le 10-11-2021 à 18:52:13    

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
Reply

Sujets relatifs:

Leave a Replay

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