Rechercher sur une partie d'un doc word

Rechercher sur une partie d'un doc word - VB/VBA/VBS - Programmation

Marsh Posté le 29-07-2005 à 11:35:42    

Bonjour,
 
Je cherche à faire une macro Word afin de remplacer les points par les virgules dans les chiffres, dans ma sélection. J'en est faite une mais elle me remplace les virgules entre tous les chiffres du document, pas seulement dans ma sélection. Des suggestions?
 
Voici ma macro:
 
Sub PointVirg()
 
Do While Selection.Find.Execute(FindText:="^#.^#", _
Forward:=True, _
Format:=True) = True
 
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^#.^#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:=","
    Selection.Delete Unit:=wdCharacter, Count:=1
Loop
End Sub

Reply

Marsh Posté le 29-07-2005 à 11:35:42   

Reply

Marsh Posté le 29-07-2005 à 11:37:48    

piupiu666 a écrit :

Bonjour,
 
Je cherche à faire une macro Word afin de remplacer les points par les virgules dans les chiffres, dans ma sélection. J'en est faite une mais elle me remplace les virgules entre tous les chiffres du document, pas seulement dans ma sélection. Des suggestions?
 
Voici ma macro:
 
Sub PointVirg()
 
Do While Selection.Find.Execute(FindText:="^#.^#", _
Forward:=True, _
Format:=True) = True
 
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^#.^#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:=","
    Selection.Delete Unit:=wdCharacter, Count:=1
Loop
End Sub


 
assure toi que la selection en cours est bien celle de ta souris (enfin ta zone de texte selectionnée koi)

Reply

Marsh Posté le 29-07-2005 à 11:57:59    

Maerci pour la suggestion, mais même en sélectionnant avec la souris, ça ne fonctionne pas : toutes les points sont changés en virgule.

Reply

Marsh Posté le 29-07-2005 à 12:00:08    

piupiu666 a écrit :

Maerci pour la suggestion, mais même en sélectionnant avec la souris, ça ne fonctionne pas : toutes les points sont changés en virgule.


non mais ton selection dans ta fonction pas sur l'écran  :pt1cable:

Reply

Marsh Posté le 29-07-2005 à 12:04:18    

jpcheck a écrit :

non mais ton selection dans ta fonction pas sur l'écran  :pt1cable:


Lol, je dois avouer que je débute un peu...  :)
Avec la souris dans ma fonction, c'est à dire?

Reply

Marsh Posté le 29-07-2005 à 12:17:50    

piupiu666 a écrit :

Bonjour,
 
 
Sub PointVirg()
 
Do While Selection.Find.Execute(FindText:="^#.^#", _
     


le Selection d'ici  :sarcastic:  tu le fais correspondre à ta selection de souris ou pas?
remplace le par ca peut etre:  
ActiveDocument.ActiveWindow.Selection.Find.Execute(FindText:="^#.^#", _

Reply

Marsh Posté le 29-07-2005 à 12:33:16    

Je vois un peu mieux... Merci.
Je pensais que ça correspondais à la selection de ma souris effectivement, mais ce n'est pas le cas. J'ai essayé avec  
ActiveDocument.ActiveWindow.Selection.Find.Execute(), mais c'est pas mieux.
Ne peut on pas enregistrer cette selection dans une variable ou un truc du genre? (désole par avance, si c'est une question stupide, je découvre VB et ça fait longtemps que j'ai rien programmé...), puis faire le FindText sur cette variable?

Reply

Marsh Posté le 29-07-2005 à 12:49:49    

dsl moi je connais surtout excel, mais je vais chercher un peu... :sweat:

Reply

Sujets relatifs:

Leave a Replay

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