selection texte entre parenthèse + gras [VB WORD] - VB/VBA/VBS - Programmation
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
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 !
Marsh Posté le 08-11-2006 à 10:21:58
Bonjour,
j'espère que le traitement ne dure pas trop longtemps
Cordialement
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
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!
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
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
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
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
Marsh Posté le 04-01-2007 à 00:16:47
ah super, ça marche super bien
Merci beaucoup c'est super! :-)
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, |
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?