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

 



Dernière réponse
Sujet : [VB WORD] selection texte entre parenthèse + gras
pphbourgeois 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
 


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
pphbourgeois 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
 

fcoisb ah super, ça marche super bien
Merci beaucoup c'est super! :-)
pyrof 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
 
fcoisb 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
kiki29 voir pour les caractères génériques http://faqword.free.fr/articles.php?lng=fr&pg=1322
fcoisb 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
fcoisb ah ouais punèse c'est carrément plus rapide :-)
L'autre truc était vraiment long!
 
merci beaucoup!  
 
pyrof 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
 
seniorpapou Bonjour,
j'espère que le traitement ne dure pas trop longtemps
Cordialement
fcoisb super ça marche tout seul :-)
Merci beaucoup!  
 
en effet, bizarre pour l'espace devant la parenthèse !
seniorpapou 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
fcoisb 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?

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