Specifieke (regels) tekst uit Word document achterhalen en kopieren

Status
Niet open voor verdere reacties.

mjansen22

Nieuwe gebruiker
Lid geworden
12 dec 2013
Berichten
4
Beste experts,

voor een groot Word document (+- 1000 pagina's) wil ik graag teksten kopiëren van het ene document naar het andere document. In het brondocument gaat het specifiek om de tekst die staat (op verschillende regels) tussen twee teksten "Naam" en "****". Bijgevoegd de opzet van het brondocument en doeldocument om een idee te krijgen van de structuur. Ik zou graag beide posities bepalen en vervolgens de teksten ertussen selecteren kopieren (en dit tot aan het einde van het document herhalen).

Ik heb wel een klein stukje code (hieronder weergegeven) om de beginpositie "Naam" (incl. ENTER) te achterhalen (ik kan me voorstellen dat ik de eindpositie op vergelijkbare wijze kan bepalen) maar ik weet niet hoe ik de precieze tekst ertussen kan selecteren om deze vervolgens te kopieren.

Code:
Sub copyDocuments2()
'
' Nieuw1 Macro
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "TEKST^13"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.MoveRight Unit:=wdCharacter, Count:=1

    <........?>

    Selection.copy

Hoor graag wanneer iemand me hierbij kan helpen, door de code aan te vullen.

Alvast erg bedankt!
Marco

Bekijk bijlage Bro.docBekijk bijlage Doe.doc
 
Je krijgt alle afzonderlijke 'fiches' met

Code:
Sub M_snb()
   sn = Split(ThisDocument.Content, "naam")
   for j=1 to ubound(sn)
      msgbox sn(j)
   next
End Sub

Zo kun je ieder afzonderlijk fiche 'kopiëren' .
 
bedankt voor de snelle reactie, maar wanneer ik deze code importeer wordt de "TEKST" niet gevonden in het brondocument...
Is splitsen wel mogelijk wanneer ik alleen de regels wil kopieren na de "TEKST" en tot de regels "***"? Zoja, is dit dan zo goed of moet er nog wat toegevoegd worden om deze regels te selecteren en te kopieren?

Hoor het graag. Alvast bedankt!
Marco
 
Als je de tekst kunt laten zien in een msgbox kun je die tekst willekeurig waar plaatsen, bijv. in een ander document.

Zie de bijlage
 

Bijlagen

Ik denk dat TS meer geïnteresseerd is in de eerste regel, en dan met name de tekst achter naam: en vóór de asteriksen:
En die pak je zo:
Code:
Sub M_snb()
Dim i As Integer, j As Integer
Dim sn As Variant, octa As Variant
    sn = Split(ThisDocument.Content, "naam: ")
    For j = 1 To UBound(sn)
        octa = Split(sn(j), "*")
        MsgBox octa(LBound(octa))
    Next j
End Sub
 
@octa

Bij jouw interpretatie:

Code:
Sub M_snb()
   sn = filter(Split(ThisDocument.Content, vbcr),"naam:")

   for j=1 to ubound(sn)
      msgbox sn(j)
   next
End Sub
 
Dank, ik zie in het voorbeeld document wat ik niet goed deed, de macro stond op de verkeerde plaats (hing niet onder het word-document).
Daarnaast zie ik nu ook met het nieuwe stukje code hoe precies de juiste tekst kan worden geselecteerd in de msgbox :-)

Alleen dan het kopieren naar een ander document, ik gebruikte hiervoor de volgende code alleen hiermee krijg ik een foutmelding:

Code:
    Selection.Copy
    Windows("Doeldocument.doc").Activate
    Selection.PasteAndFormat (wdPasteDefault)
    Windows("Brondocument.doc").Activate
    ActiveWindow.Panes(1).Activate

Met welke code kan ik deze tekst wel kopieren naar het doeldocument (en evt. activeren/deactiveren).

Hoor het graag. Alvast bedankt!
Marco
 
Code:
Sub M_snb()
   sn = filter(Split(ThisDocument.Content, vbcr),"naam:")

   for j=1 to ubound(sn)
      Documents("doeldocument.doc").content.insertafter vbcr & sn(j)
   next
End Sub

PS. Ik denk dat aanschaf van een VBA basisboek geen overbodige luxe is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan