Avatar billede al9000 Nybegynder
16. september 2013 - 10:54 Der er 3 kommentarer og
1 løsning

Makro som henter tekst bestemt sted i dokumentet til "gemsom"

Jeg er ved at udarbejde en standard i word (dk-version) hvor brugeren har adgang til at skrive i bestemte felter, mens resten af dokumentet er låst.

De 2 første felter brugeren kan skrive i er:

Kundenummer
Kundenavn

Jeg kunne rigtig godt tænke mig en makro hvor følgende sker når brugeren klikker på den.

Lad os antage brugeren i dokumentet har skrevet kundenummer 1234 og Jens Jensen A/S som navn.

Arket er bygget op med nogle tabeller. Første linje i dokumentet er "stamoplysninger" og i de næste to linjer er der 1 tabel med 2 rækker og 2 kolonner. I første linje i første række står Kundenummer (tekst låst) - og i cellen til højre herfor kan brugeren skrive kundenummeret (indtastes manuelt). Det samme for navnet i linje 2 med navnet..

Ved aktivering af makroen sker følgende:

1.    Åbner "gem som dialog boksen"
2.    Work henter automatisk det indtastede kundenummer og kundenavn således den foreslår gemsom: "1234 Jens Jensen A/S.doc".
3.    Gem som skal gerne pege ned på en bestemt folder

Jeg har kun sparsom makro erfaring (kun fra Excel) så hvis der er nogen der er villig til at hjælpe med at pege mig i den rigtige retning vil jeg være meget taknemmelig.
Avatar billede supertekst Ekspert
16. september 2013 - 18:23 #1
Er det den første tabel i dokumentet, hvorfra data skal hentes?
VBA-koden skal adressere til den denne via tabellens nummer (løbenr.)
Avatar billede supertekst Ekspert
16. september 2013 - 23:54 #2
Eksempel:

Const systemSti = "C:\Users\peter\Desktop\GemDokument"  'justeres
Const tabelNr = 1
Dim nr As String, navn As String
Dim dlgSaveAs As FileDialog, filSti As String
Sub gemDokument()
    nr = klargør(1, 2)
    navn = klargør(2, 2)
   
    filSti = systemSti & "\" & nr & " " & navn '& ".doc"
    ActiveDocument.SaveAs filSti
End Sub
Private Function klargør(ræk, kol)
Dim felt, felt1, felt2
    With Tables(tabelNr)
        felt = ActiveDocument.Tables(tabelNr).Cell(ræk, kol)
        felt1 = Left(felt, Len(felt) - 2)
        felt2 = Replace(felt1, "/", "")
    End With
    klargør = felt2
End Function
Avatar billede al9000 Nybegynder
25. oktober 2013 - 15:29 #3
Tak for hjælpen, venligst læg et svar (beklager den lange svartid)
Avatar billede supertekst Ekspert
25. oktober 2013 - 15:37 #4
Selv tak - et svar, som du så kan godkende (ok)
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