Avatar billede the_email Nybegynder
14. januar 2007 - 02:26 Der er 4 kommentarer og
2 løsninger

Makro: Indsæt tal og print [repeat]

Jeg skal bruge lidt hjælp til en simpel makro.
Når makroen loades skal den komme en dialogboks frem hvor man kan skrive et antal tal ind, kommasepareret

112,235,142,251 ....

Makroen skal så indsætte tallene hvor cursoren står og printe.

Der skal printes en side pr. tal

/TheEmail
Avatar billede rvm Nybegynder
14. januar 2007 - 10:20 #1
Prøv denne:

Sub IndtastPrint()
Dim strSvar As String

'Indtast tal
strSvar = InputBox("Indtast tal", "Tal")

'Skrive tal i dokumentet
Selection.TypeText strSvar

'Finder antal tal - delt med et komma
Y = Split(strSvar, ",")

    tæller = 0
    For i = 0 To UBound(Y)
        tæller = tæler + 1
    Next i

'udskriver dokumentet det antal gange som der er tal
ActiveDocument.PrintOut Copies:=tæller
   
End Sub
Avatar billede the_email Nybegynder
14. januar 2007 - 19:25 #2
Kan se jeg ikke har beskrevet mit problem ordentligt.
Jeg har tallene 231,432,453,123

Disse skal printes på følgende måde:

<-- Side start
231
--> Side slut

<-- Side start
432
--> Side slut

<-- Side start
453
--> Side slut

<-- Side start
123
--> Side slut


Der skal altså være ét tal på hver side

Kunne det lade sig gøre, vil jeg gerne have at der kommer en dialogboks op hvor man taster et tal og trykker Enter. Herefter trykker man endnu en tal og så Enter. Sådan forsættes til man ikke skal have flere tal og der tastes Cancel/Annuller og herefter printes som ovenstående.

/TheEmail
Avatar billede rvm Nybegynder
14. januar 2007 - 20:01 #3
Så du vil altså have slettet tallet igen og indsat et nyt indtil du er færdig :-)

Indsæt et formularfelt, der hvor tallende skal stå og giv det bogmærket "BmkTal"

Brug derefter ndenstående kode:

Sub IndtastPrint()
Dim strSvar As String

strSvar = InputBox("Indtast tal", "Tal")
Do While strSvar <> ""
    ActiveDocument.FormFields("BmkTal").Result = strSvar
    ActiveDocument.PrintOut
    strSvar = InputBox("Indtast tal", "Tal")
Loop
   
End Sub
Avatar billede the_email Nybegynder
26. januar 2007 - 22:42 #4
Beklager den lange ventetid. Men makroen gør stadigvæk ikke som jeg gerne vil have den til.
Jeg har fundet ud af at det er upraktisk at den printer ved hver indtastning, så hvis du kan lave en som skriver det tal man har skrevet og derefter laver sideskift.

Brugeren taster 421 og herefter trykker på OK eller Enter og makroen indsætter tallet 421 og laver et sideskift. Herefter indtaster brugeren et nyt tal og trykker OK eller Enter og dette tal indsættes og der laves et nyt sideskift.
Dette fortsætter til brugeren trykker annuller eller Esc.

Har du en ide til hvordan jeg kan lave det? Jeg skal bare have skrevet et enkelt tal på hver side.


/TheEmail
Avatar billede rvm Nybegynder
30. januar 2007 - 08:11 #5
Prøv denne:

Sub IndtastPrint()
Dim strSvar As String

strSvar = InputBox("Indtast tal", "Tal")
Do While strSvar <> ""
    Selection.TypeText strSvar
    Selection.InsertBreak Type:=wdPageBreak
    strSvar = InputBox("Indtast tal", "Tal")
Loop
ActiveDocument.PrintOut
 
   
End Sub
Avatar billede the_email Nybegynder
30. januar 2007 - 17:21 #6
Perfekt

Takker
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