Avatar billede LS-Falster Juniormester
14. december 2015 - 14:50 Der er 8 kommentarer og
1 løsning

Slette tomme bogmærker

Jeg har en skabelon, hvor der er indsat følgende 7 adressebogmærker:

Gadenavne_Gadenavn Husnr Husbogstav Etage SideDørNr, Postnr Gadenavne_Område


Problemet opstår, når nogle af bogmærkerne er tomme. Så bliver der alt for mange mellemrum mellem husnummeret og postnummer - fx Vestergade 3  , 4930 Maribo.

Kan der laves en makro, som sletter tomme bogmærker?
Avatar billede Lene Fredborg Ekspert
14. december 2015 - 15:07 #1
Der kan godt laves en makro, men det er vel ikke bare bogmærkerne, der skal slettes? Er det ikke snarere mellemrum før eller efter bogmærkerne, der giver den ekstra afstand?

Det er nødvendigt at vide, hvordan teksten er bygget op - ellers kan makroen ikke laves korrekt.
14. december 2015 - 15:12 #2
Du kan nøjes med at indsætte felterne (og de tilhørende mellemrum) hvis der er indtastet noget i felterne.

F. eks.
{IF {MERGEFIELD "Husbogstav"} <> "" "{MERGEFIELD "Husbogstav"}  " ""}
Avatar billede LS-Falster Juniormester
14. december 2015 - 15:25 #3
Et eksempel på en brevskabelon kunne se således ud:

Varsel af påbud og partshøring - Gadenavn_Gadenavn Husnr Husbogstav, Etage SideDørNr, Postnr Gadenavne_Område

Hvis alle bogmærker er udfyldt, vil det se således ud:
Varsel af påbud og partshøring - Vestergade 3 A, st. tv., 4930 Maribo.

Jeg kan dog se nogle udfordringer i forhold til kommaerne. Hvis adressen hverken indeholder etage eller sidedør, ender jeg med to kommaer ved siden af hinanden.
Avatar billede Lene Fredborg Ekspert
14. december 2015 - 17:36 #4
Hvordan bliver data indsat i dokumenterne - er det via flettefelter (MERGEFIELD) eller via VBA og en UserForm eller???

Hvis det er via flettefelter, kan du opbygge flettefelterne med betingelser som foreslået af erikjuul (men som jeg læser din forklaring lyder det ikke til at være tilfældet).
Avatar billede LS-Falster Juniormester
15. december 2015 - 13:29 #5
Data bliver indsat vha. blanketkoder, som vi har fået tildelt. Disse blanketkoder bliver indsat i dokumentet som bogmærker.

Der er ikke tale om flettefelter, så løsningen fra erikjuul er desværre ikke brugbar i dette tilfælde
Avatar billede Lene Fredborg Ekspert
15. december 2015 - 13:52 #6
En makro noget i retning af nedenstående kan bruges. Måske du har brug for at rette noget til afhængigt af, hvordan det er, ekstra mellemrum og kommaer forekommer.

Makroen er baseret på, at du omkring hele område (måske et enkelt afsnit), hvor adressen findes, indsætter et bogmærke med navnet "HeleAdressen" (du kan kalde det hvad du vil - skal så blot rette tilsvarende i makroen). Hvis du har andre måder at finde stedet i dokumentet på, kan du bruge det i stedet.

Makro:

Sub ReplaceDoubleSpacesAndCommasBySingle()
    Dim rngAdresse As Range
   
    With ActiveDocument
        If .Bookmarks.Exists("HeleAdressen") Then
            Set rngAdresse = .Bookmarks("HeleAdressen").Range
           
            'Find all occurrences of two spaces and two commas and delete by a single
            With rngAdresse
                Do Until InStr(1, .Text, "  ") = 0 And _
                        InStr(1, .Text, ",,") = 0
                  .Text = Replace(.Text, "  ", " ")
                  .Text = Replace(.Text, ",,", ",")
                Loop
            End With
        End If
    End With
   
    Set rngAdresse = Nothing
End Sub
Avatar billede Lene Fredborg Ekspert
15. december 2015 - 13:57 #7
Tilføjelse til makro:
Metoden med brug af Replace forudsætter, at teksten ikke indeholder speciel formatering på dele af tekstn, da sådan formatering vil gå tabt.
Avatar billede LS-Falster Juniormester
21. december 2015 - 10:22 #8
Hej Lene

Så har jeg haft tid til at tjekke dit løsningsforslag og med diverse smårettelser har jeg fået det til at virke som ønsket.

Jeg takker for hjælpen og sørger for, at du får dine point, når du har sendt mig et svar.
Avatar billede Lene Fredborg Ekspert
21. december 2015 - 11:04 #9
Velbekomme. Det var godt, du fik det til at virke.
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

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