Vb récupérer le numero de ligne
oisillon
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Prog44 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Prog44 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Vb récupérer le numero de ligne
- Partage de photos en ligne - Guide
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Récupérer compte yahoo sans numéro de téléphone - Guide
- Recuperer message whatsapp supprimé - Guide
1 réponse
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
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