Avatar billede Emmafrid Nybegynder
20. april 2009 - 15:00 Der er 23 kommentarer

Makro

Hej.

Kan der oprettes en makro i Word så det kan lade sig gøre automatisk at tilføje f.eks. fortløbende fakturanumre, og hvordan gør man det.
Avatar billede Lene Fredborg Ekspert
20. april 2009 - 15:25 #1
Ja, det kan lade sig gøre. En makro med tilhørende beskrivelse findes i denne artikel (på engelsk):
http://www.word.mvps.org/FAQs/MacrosVBA/NumberDocs.htm
Avatar billede Emmafrid Nybegynder
21. april 2009 - 13:55 #2
Hejsa

Jeg har været ved at forsøge mig udfra det link du sendte, og har prøvet at oprette den makro som er vist, der er en fejl i følgende sekvens:

System.PrivateProfileString("C:\Order.txt", "MacroSettings", _
        "Order") = Order

Hvad gør jeg forkert?
Avatar billede vejmand Juniormester
21. april 2009 - 14:04 #3
Emmafrid >> Husk at sende egne indlæg som "Kommentar" og ikke som "Svar".
"Svar" er tiltænkt løsningen, så der kan tildeles point som tak for hjælpen.
Avatar billede Lene Fredborg Ekspert
21. april 2009 - 15:12 #4
Hvilken fejl får du?

NB Du bør indsætte følgende linje lige efter linjen med Sub AutoNew():

Dim Order As String
Avatar billede Emmafrid Nybegynder
21. april 2009 - 16:08 #5
Hejsa
Nu har jeg prøvet at indsætte linjen Dim Order As String som du skrev, men når jeg afspiller makroen bliver nedennævnte sekvens markeret med gult

System.PrivateProfileString("C:\Settings.txt", "MacroSettings", _
        "Order") = Order


og der kommer en dialogboks hvor der står følgende

Run-time error '-2147467259(80004005)

Method'PrivateProfileString' of object'System' failed.

Håber du kan hjælpe mig
Avatar billede perhol Seniormester
21. april 2009 - 22:06 #6
I følge makroen skal du have en tekstfil der hedder Settings.txt i roden af dit C-drev.
Det behøver bare være en tom tekstfil, makroen sørger for at opdatere den.
Avatar billede Lene Fredborg Ekspert
21. april 2009 - 22:33 #7
Kommentar til perhol:
Makroen opretter selv tekstfilen, hvis den ikke findes (sådan virker System.PrivateProfileString). Det er ikke nødvendigt at oprette den manuelt.

Til Emmafrid:
Makroen virker uden problemer hos mig, men hvis jeg ændrer "C:\" til f.eks. "J:\", som ikke findes på min PC, får jeg den fejl, du beskriver. Hedder dit normale drev C:\?

Du kan i princippet ændre stien til tekstfilen til hvad du ønsker, bare det er et drev/en mappe, der findes, og som du har rettigheder til at skrive i (den samme sti skal stå _to_ steder i makroen - stien er i makroen fra artiklen "C:\Settings.Txt").
Avatar billede Emmafrid Nybegynder
22. april 2009 - 10:31 #8
Ja mit normale drev er C:\, men fra forhandleren er den opdelt i 2 partitioner så der også er et D drev, kan det have nogen betydning?
Avatar billede Lene Fredborg Ekspert
22. april 2009 - 11:27 #9
Det bør ikke betyde noget. Prøv f.eks. inde fra Word at gemme et dokument direke i C:\. Kan du det?
Avatar billede Emmafrid Nybegynder
22. april 2009 - 11:53 #10
Jeg kan ikke gemme direkte i C men får følgende fejlmelding:
word kan ikke gemme eller oprette filen. Kontroller at den disk som du gemmer filen på, ikke er fuld, skrivebeskyttet  eller beskadiget.
Avatar billede Lene Fredborg Ekspert
22. april 2009 - 12:27 #11
Så kan makroen heller ikke gemme i C. Prøv i makroen at ændre C:\ til en sti, som du med sikkerhed kan benytte (f.eks. mappen med dine dokumenter).
Avatar billede Emmafrid Nybegynder
22. april 2009 - 13:02 #12
Nu har jeg prøvet at ændre stien så det er min dokument mappe, og nu markerer den nedennævnte sekvens med gult, er der noget som skal ændres der?


ActiveDocument.Bookmarks("Order").Range.InsertBefore Format(Order, "00#")
ActiveDocument.SaveAs FileName:="path" & Format(Order, "00#")
Avatar billede Lene Fredborg Ekspert
22. april 2009 - 13:18 #13
Hvilken fejl får du?

Makroen forudsætter, at du i dokumentet har et bogmærker, der hedder "Order", der hvor nummeret skal indsættes. Du kan bruge et andet navn, men så skal du rette tilsvarende i makroen.
Avatar billede Emmafrid Nybegynder
22. april 2009 - 17:21 #14
Foreløbig tak for hjælpen.
Nu lader det til at jeg har fået makroen til at virke, der kommer ihvertfald ingen fejl. Når jeg afspiller den gemmer den en kopi af dokumentet som den kalder path001, så nu mangler jeg bare at få den til at lave de fortløbne fakturanumre i dokumentet. Jeg ved ikke om jeg har lavet en fejl når den ikke gør det automatisk, eller hvad der evt. mangler.
Avatar billede perhol Seniormester
22. april 2009 - 17:46 #15
Følgende virker på min, hvor min "Dokumenter" mappe ligger på drev D:

Sub AutoNew()

FakturaNr = System.PrivateProfileString("D:\Dokumenter\FakturaNr.Txt", _
        "MacroSettings", "FakturaNr")

If FakturaNr = "" Then
    FakturaNr = 1
Else
    FakturaNr = FakturaNr + 1
End If

System.PrivateProfileString("D:\Dokumenter\FakturaNr.txt", "MacroSettings", _
        "FakturaNr") = FakturaNr

ActiveDocument.Bookmarks("FakturaNr").Range.InsertBefore Format(FakturaNr, "00#")
ActiveDocument.SaveAs FileName:="D:\Dokumenter\Faktura" & Format(FakturaNr, "00#")

End Sub
Avatar billede perhol Seniormester
22. april 2009 - 17:49 #16
Skabelonen skal ligge i den mappe som word er indstillet til at gemme skabeloner i.

På min makine er det mappen:
"C:\Users\Per Holst\AppData\Roaming\Microsoft\Skabeloner"
Avatar billede Lene Fredborg Ekspert
22. april 2009 - 18:24 #17
I tilfælde af Windows XP (og ikke Vista) er standardplaceringen af skabeloner:

C:\Documents and Settings\[navn]\Application Data\Microsoft\Skabeloner
Avatar billede Emmafrid Nybegynder
23. april 2009 - 12:53 #18
Hejsa

Tusind tak for hjælpen, nu kører det perfekt.
Avatar billede Lene Fredborg Ekspert
23. april 2009 - 16:51 #19
Det var godt, at det lykkedes. Dette er lavet som et svar, som du kan acceptere. Hvis du ønsker at dele point mellem perhol og mig, skal du have et svar fra perhol.
Avatar billede perhol Seniormester
23. april 2009 - 17:33 #20
Afstår.
Fik da selv lært lidt (det der med System.PrivateProfileString)
Avatar billede Pawlus Novice
18. august 2010 - 14:49 #21
Tak for oplysningen, som jeg tidligere har skrevet er jeg endnu ikke så dus med denne side, men det er dejligt når man kan få hjælp.
Avatar billede Lene Fredborg Ekspert
18. august 2010 - 15:35 #22
Er "Emmafrid" den samme som "Pawlus"?

I givet fald:
Du kan afslutte spørgsmålet helt ved at acceptere et svar. Et stykke ovenfor (dateret den 23. april) finder du et indlæg fra mig, der er lavet som et svar.

Som vejmand skrev tidligere: Når du selv skriver indlæg til et spørgsmål, du har oprettet, bør du lave det som "Kommentar" og ikke som "Svar", med mindre du reelt leverer løsningen på dit eget spørgsmål.
Avatar billede Pawlus Novice
24. august 2010 - 10:35 #23
Tak for hjælpen.
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