11. januar 2008 - 08:10Der er
17 kommentarer og 2 løsninger
Unik nummer til en fejlrapport lavet i word
Hej
Jeg er ved at lave en fejlrapport der opbygget i word og ved hjælp af ”Formular” og dette er i sig selv ikke svært! Men jeg vil gerne at hver gang skabelonen åbnes generes der et idnummer ud fra dato’en + et trecifret løbenummer. Løbenummeret skal være fortløbende. Ex. 11012008-001 (første fejlrapport) 11012008-002 (anden fejlrapport) osv.
Er der nogen der kan hjælpe mig med dette.
Jeg er ny bruger på sitet, efter jeg er blevet henvist af en kollega. Han sagde hvis der er nogen der ved det, så skulle være herinde.
Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
Som jeg forstår det der er skrevet, tager dette ikke i udgangspunkt i dagsdato + et løbenummer, men "kun" et løbenummer! Kan man ikke på en eller anden måde få macro'en til at tage udgangspunkt i dato'en? Og er det muligt at undgå den externe fil?
Løbenummeret må komme fra en ekstern fil, da det skal være uafhængig af skabelonen - ellers skulle skabelonen gemmes hver gang der bliver lavet et dokument på baggrund af den.
Angående løbenummer + dato, så kan du gøre således:
Jeg sender Jer lige koden. Jeg kan ikke rigtigt få det til at virke på den tiltænkte måde, Hvad gør jeg forkert?
Den tæller ikke op!
Public FakturaNr As Integer Sub AutoNew()
'Henter fakturanummeret fra en textfil (nummeret står på først linie) Open "C:\Documents and Settings\morten.APP\Skrivebord\fejlrapporter\Fakturanummer.txt" For Input As #1 Input #1, FakturaNr Close #1
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect End If
'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then ActiveDocument.Bookmarks("Fakturanummer").Select Selection.TypeText FakturaNr ' Den nye kode End If
If ActiveDocument.ProtectionType = wdNoProtection Then ActiveDocument.Protect wdAllowOnlyFormFields, True End If End Sub Sub Gem_Click() ' sæt denne makro på en knap
'Gemmer fakturaen ActiveDocument.SaveAs "C:\Documents and Settings\morten.APP\Skrivebord\fejlrapporter\doc\" & Date & " - " & FakturaNr & ".doc"
'Tæller op til næste faktura FakturaNr = FakturaNr + 1
'Gemmer det nye fakturanumer i textfilen Open "C:\Documents and Settings\morten.APP\Skrivebord\fejlrapporter\Fakturanummer.txt" For Output Access Write As #1 Write #1, FakturaNr Close #1 End Sub
'Henter fakturanummeret fra en textfil (nummeret står på først linie) Open "C:\Fakturanummer.txt" For Input As #1 Input #1, FakturaNr Close #1
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect End If
'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then ActiveDocument.Bookmarks("Fakturanummer").Select Selection.TypeText FakturaNr ' Den nye kode End If
If ActiveDocument.ProtectionType = wdNoProtection Then ActiveDocument.Protect wdAllowOnlyFormFields, True End If End Sub Sub Gem_Click() ' sæt denne makro på en knap
Jeg har nu forsøgt en del gange med den kode som du lagde til mig! Og jeg har samme problem som tidligere nævnt. Højre klik >> så virker det fint. Dobbelt klik >> så nulstiller txt-filen hver gang.
Jeg har bygget det hele op i word2003 og ved hjælp af formular.
Har I nogle gode ideer til mig……hvordan mit problem løses?
Du mangler at sætte den siste del af koden på en knap. Hvis du ikke ønsker det kan du bare lave koden således:
Public FakturaNr As Long Sub AutoNew()
'Henter fakturanummeret fra en textfil (nummeret står på først linie) Open "C:\Fakturanummer.txt" For Input As #1 Input #1, FakturaNr Close #1
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect End If
'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then ActiveDocument.Bookmarks("Fakturanummer").Select Selection.TypeText FakturaNr ' Den nye kode End If
If ActiveDocument.ProtectionType = wdNoProtection Then ActiveDocument.Protect wdAllowOnlyFormFields, True End If End Sub
Jeg har haft store problemmer med at få koden til at virke efter hensigt, men langt om længe har jeg fundet frem til hvordan den kan virke. Det er ikke fordi koden er forkert, men af en eller anden grund da jeg byttet om på række følgen af løbenr og dato, så virker det!!! Underligt. "C:\" & Date & " - " & FakturaNr & " .doc" denne virker! "C:\" & FakturaNr & " - " & Date & " .doc" denne virker ikke!
------- Public FakturaNr As Long Sub AutoNew()
'Henter fakturanummeret fra en textfil (nummeret står på først linie) Open "C:\Fakturanummer.txt" For Input As #1 Input #1, FakturaNr Close #1
If ActiveDocument.ProtectionType <> wdNoProtection Then ActiveDocument.Unprotect End If
'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then ActiveDocument.Bookmarks("Fakturanummer").Select Selection.TypeText FakturaNr ' Den nye kode End If
If ActiveDocument.ProtectionType = wdNoProtection Then ActiveDocument.Protect wdAllowOnlyFormFields, True End If
UPS...der blev vist lige byttet lidt for meget rundt!
"C:\" & Date & " - " & FakturaNr & " .doc" denne virker ikke! "C:\" & FakturaNr & " - " & Date & " .doc" denne virker!
Synes godt om
Ny brugerNybegynder
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.