Avatar billede LS-Falster Juniormester
24. januar 2012 - 11:40 Der er 9 kommentarer og
1 løsning

Slette linjer på baggrund af specifik tekst i Tekstfelt i formular

Jeg har et tekstfelt i formular, hvor standardteksten er "Der er ikke søgt om dispensation". Nedenunder er der 7 linjer, som beskriver dispensationsmuligheder.

Mit ønske:
Hvis tekstfelt = "Der er ikke søgt om dispensation", så slettes de 7 linjer under tekstfeltet.

Mvh Lars
Avatar billede Abemand123 Nybegynder
24. januar 2012 - 11:51 #1
Avatar billede Lene Fredborg Ekspert
24. januar 2012 - 11:59 #2
Er dine "linjer" 7 selvstændige afsnit, dvs. afsluttet med Enter?
Avatar billede LS-Falster Juniormester
24. januar 2012 - 13:04 #3
Der er tale om 6 selvstændige afsnit - det ene afsnit fylder 2 linjer.
Avatar billede Lene Fredborg Ekspert
24. januar 2012 - 22:03 #4
Nedenstående kode skulle gøre det, du beskriver. Jeg har ikke inkluderet kode til at fjerne/sætte protection af formularen - regner med, at du styrer det i din eksisterende kode

    Dim oField As FormField
    Dim oDoc As Document
    Dim oRange As Range
   
    Set oDoc = ActiveDocument
    For Each oField In oDoc.Range.FormFields
        If oField.Result = "Der er ikke søgt om dispensation" Then
            Set oRange = oField.Range.Paragraphs(1).Range
            'Extend range to include 6 next paragraphs
            If oRange.MoveEnd(UNIT:=wdParagraph, Count:=6) <> 0 Then
                oRange.Delete
            Else
                'MoveEnd returns 0 if less than 6 paragraphs are found after paragraph with field
                'Insert code here if something is going to happen in case less than 6 paragraphs were found
            End If
        End If
    Next oField
   
    Set oDoc = Nothing
Avatar billede LS-Falster Juniormester
25. januar 2012 - 09:00 #5
Jeg kan desværre ikke få det til at virke. Jeg har placeret din kode i et module. Når jeg klikker på "beskyt formular" og og skal til at skifte mellem de forskellige tekstfelter, kommer fejlmeddelelsen Compile error: Invalid outside procedure.
Avatar billede Lene Fredborg Ekspert
25. januar 2012 - 20:11 #6
Koden er skrevet som en "løsrevet" til at sætte ind i en eksisterende makro. Hvis du ikke har sat koden ind i en anden makro, skal du tilføje "Sub NAVNPÅMAKRO()" for og "End Sub" efter koden - som i alle andre makroer.
Avatar billede LS-Falster Juniormester
26. januar 2012 - 14:36 #7
Super! Så virker det.

Jeg ved ikke om det er muligt at finjustere makroen. Når makroen kører, bliver hele dokumentet "bladret igennem" (7 sider), og så stiller cursoren sig til sidst til det næste tekstfelt i dokumentet. Det virker dog lidt forvirrende, og man mister lidt overblikket.

Hvis dette også kan løses, er det som en Toyota-reklame - 103%. Og ellers så må du gerne sende et svar for veludført opgave.

Tak for hjælpen.

Mvh Lars
Avatar billede Lene Fredborg Ekspert
26. januar 2012 - 19:57 #8
Velbekomme.
Da "min" kode ikke ændrer på, hvad der er markeret i dokumentet, burde den ikke bevirke, at der "bladres". Har du selv tilføjet kode, som bruger Selection? Det bevirker, at markeingen skifter i dokumentet. Hvis man bruger Range i stedet for (hvilket jeg har gjort), sker det ikke. Men det med at bruge Range kræver lidt øvelse ...
Avatar billede LS-Falster Juniormester
27. januar 2012 - 13:16 #9
Jeg kan ikke umiddelbart se, at der er brugt Selection i dette dokument, men da det er en kopi af en skabelon, kan der muligvis ligge noget kode, som jeg ikke kender til.

Du må gerne sende et svar, så du kan få dine points.
Avatar billede Lene Fredborg Ekspert
27. januar 2012 - 20:01 #10
OK. Uden at have set din kode kan jeg desværre ikke fortælle dig, hvad det så er i din kode, der er årsagen (det behøver ikke at være "Selection" - kan også f.eks. bare være ".Select".
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester