Vb récupérer le numero de ligne

Fermé
oisillon Messages postés 3 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 12 septembre 2008 - 12 sept. 2008 à 18:13
Prog44 Messages postés 17 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 24 septembre 2008 - 16 sept. 2008 à 22:43
Bonjour,
je veux en vb faire une recherche sur un mot dans un document word ça j'ai réussi a le faire par contre je n'arrive pas a la suite de ma recherche à récupérer le numero de ligne pour ensuite copier toute la ligne
A voir également:

1 réponse

Prog44 Messages postés 17 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 24 septembre 2008 3
16 sept. 2008 à 22:43
voici un exemple :

Sub copier_ligne()

Dim i, j, nbcar, maxpar, nbcarmot, nbpar, pos1, pos2, p1, p2 As Integer
Dim oncopie As Boolean
Dim mot As String
Dim vpar As Paragraph
Dim vrange As Range

mot = "pigeon" 'mot à rechercher --> modifier le mot ici uniquement
nbcarmot = Len(mot) 'longueur du mot

'parcours du document
With ActiveDocument

nbpar = .Paragraphs.Count 'nombre deparagraphes dans le texte de départ --> ne doit pas changer

For i = 1 To nbpar 'parcours des paragraphes
Set vpar = .Paragraphs(i) 'vpar est le paragraphe en cours
nbcar = .Paragraphs(i).Range.Characters.Count 'nombre total de caractères dans le paragraphes
oncopie = True 'flag pour éviter les doublons de mot à rechercher dans le même paragraphe
For j = 0 To nbcar - 1 'parcours des caractères du paragraphe vpar
pos1 = j 'position dans le paragraphe
p1 = vpar.Range.Start + pos1 'position dans le document (nécessaire pour vrange)
If pos1 + nbcarmot < nbcar Then 'test longueur du mot recherché
pos2 = pos1 + nbcarmot
p2 = p1 + nbcarmot
Else
pos2 = pos1
p2 = p1
End If

Set vrange = .Range(p1, p2)


If vrange = mot Then
If oncopie = True Then
.Paragraphs.Add
maxpar = .Paragraphs.Count 'déplacement de la fin du texte
.Paragraphs(maxpar).Range.InsertAfter vpar.Range.Text
oncopie = False
End If

End If

Next j


Next i
End With




End Sub
2