Avatar billede yearr Nybegynder
02. oktober 2007 - 09:34 Der er 8 kommentarer og
1 løsning

LOOP i denne makro

Hej jeg sidder her med en makros som ser ud som følger

Sub AutoNew()

Dim FakturaNr As Integer

Selection.TypeBackspace
Selection.TypeBackspace

'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

'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
End If

'Tæller op til næste faktura
FakturaNr = FakturaNr + 1

'Gemmer det nye fakturanumer i textfilen
Open "c:\Fakturanummer.txt" For Output Access Write As #1
Write #1, FakturaNr
Close #1
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
    Selection.TypeText FakturaNr ' Den nye kode
End If
'printer Siden Ud
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub

Den vil jeg gerne have lavet en Loop i ¨så dan kører FX 50 Print ud inden man skal starte makroen igen

nogen der har et forslag til hvordan jeg kan gøre dette?
Avatar billede nielle Nybegynder
02. oktober 2007 - 09:55 #1
Sådan?

Sub AutoNew()
    Dim FakturaNr As Integer

    Selection.TypeBackspace
    Selection.TypeBackspace

    '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

    'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet
    If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
        ActiveDocument.Bookmarks("Fakturanummer").Select
    End If

    'Tæller op til næste faktura
    FakturaNr = FakturaNr + 1

    'Gemmer det nye fakturanumer i textfilen
    Open "c:\Fakturanummer.txt" For Output Access Write As #1
    Write #1, FakturaNr
    Close #1

    If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
        ActiveDocument.Bookmarks("Fakturanummer").Select
        Selection.TypeText FakturaNr ' Den nye kode
    End If

    'printer Siden Ud
    For printNr = 1 To 50
        Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    Next
End Sub
Avatar billede yearr Nybegynder
02. oktober 2007 - 10:06 #2
nej den virker ikke, men der skal jo også en begrænsning på som siger 50 af gangen
Avatar billede nielle Nybegynder
02. oktober 2007 - 10:20 #3
Det er da det løkken:

For printNr = 1 To 50

gør?
Avatar billede yearr Nybegynder
02. oktober 2007 - 10:22 #4
arrgh sorry havde ikke set du havde rette noget der oppe også jeg prøver lige igen:P
Avatar billede yearr Nybegynder
02. oktober 2007 - 10:26 #5
det virker ikke den printer bare det samme ud så, den skal jo andre tallet hver gang den laver et nyt print
Avatar billede word-hajen Nybegynder
02. oktober 2007 - 10:31 #6
Pas på med bogmærket. Når I selecter og indsætter tekst på den måde, sletter I samtidig bogmærket. Det er nødvendigt at sætte et range, der omfatter bogmærkets range, derefter indsættes teksten (ranget bliver dermed udvidet) og så skal I sætte bogmærket omkring ranget igen.
Avatar billede yearr Nybegynder
02. oktober 2007 - 10:32 #7
Hvordan vil du gøre det, tror ikke rigtig jeg forstår hva du mener?
Avatar billede yearr Nybegynder
02. oktober 2007 - 13:14 #8
jeg har selv fundet noget af svaret ved at skrive som følger

Sub AutoNew()
Do
Dim FakturaNr As Integer

Selection.TypeBackspace
Selection.TypeBackspace

'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

'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
End If

'Tæller op til næste faktura
FakturaNr = FakturaNr + 1

'Gemmer det nye fakturanumer i textfilen
Open "c:\Fakturanummer.txt" For Output Access Write As #1
Write #1, FakturaNr
Close #1
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
    Selection.TypeText FakturaNr ' Den nye kode
End If
'printer Siden Ud
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
Loop
End Sub


men skal nu have en timer ind så den ikke bare står og printer 5000 ud på en gang før man kan nå at lukke Word
Avatar billede yearr Nybegynder
02. oktober 2007 - 15:38 #9
har selv fundet det hele men tak for hjælpen alle sammen det kommer til at se sådan her ud:

Sub AutoNew()

Do

Dim FakturaNr As Integer

'sletter det gamle tal
Selection.TypeBackspace

'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

'Indsætter fakturanummeret ved bogmærket "Fakturanummer" i dokumentet
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
End If

'Tæller op til næste faktura
FakturaNr = FakturaNr + 1

'Gemmer det nye fakturanumer i textfilen
Open "c:\Fakturanummer.txt" For Output Access Write As #1
Write #1, FakturaNr
Close #1
If ActiveDocument.Bookmarks.Exists("Fakturanummer") = True Then
    ActiveDocument.Bookmarks("Fakturanummer").Select
    Selection.TypeText FakturaNr ' Den nye kode
End If

Loop Until FakturaNr > 9

End Sub
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
Kurser inden for grundlæggende programmering

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