AnnetteGerrits
Gebruiker
- Lid geworden
- 4 nov 2015
- Berichten
- 18
Hoi allemaal,
Ik heb helemaal geen verstand of ervaring in het werken met VBA. Ik kan kant en klare codes/module/macros van internet halen en die in VBA plakken, maar als deze niet werken ben ik helemaal negens.
Nu ben ik aan het proberen om een macro werkend te krijg waarmee ik een kopie voor elke print een ander nummer geef in word. Via internet heb ik de volgende code gevonden:
Deze doet exact wat ie moet doen (vragen hoeveel prints ik wil en vanaf welk nummer beginnen met printen, en vervolgens onthouden waar ie gebleven is). Het enige wat ik er het liefst eruit wil halen is dat stukje dat onthoud waar ie gebleven is. Hij zou nadat het printen compleet is, niet het laatste nummer moeten laten zien, maar geen informatie (dus gewoon blank). Ik denk dat het iets te maken zou moeten hebben met een herhaling van het laatste stukje (loop trough the print-write-print cycle) maar ik weet niet hoe dat ik het moet verwerken.
Daarnaast zou ik ook graag (maar weet niet of dat dat mogelijk is) deze macro automatisch laten draaien op het moment dat er via het menu (of ctrl+P) wordt geprint. Kan dit, of kun je een macro alleen runnen door de specifieke knop of snel toets te gebruiken?
Ik heb een leeg voorbeeld bestandje aangehangen waarin de code zoals ik hem nu heb staat.
Alvast bedankt voor de hulp.
Met vriendelijke groet,
Annette Gerrits
Bekijk bijlage example TR.docm
Ik heb helemaal geen verstand of ervaring in het werken met VBA. Ik kan kant en klare codes/module/macros van internet halen en die in VBA plakken, maar als deze niet werken ben ik helemaal negens.
Nu ben ik aan het proberen om een macro werkend te krijg waarmee ik een kopie voor elke print een ander nummer geef in word. Via internet heb ik de volgende code gevonden:
Code:
Public Sub Print_TR_Numbers()
Dim varItem As Variable
Dim bExists As Boolean
Dim lCopiesToPrint As Long
Dim lCounter As Long
Dim lCopyNumFrom As Long
' ensure our doc variable exists
bExists = False
For Each varItem In ActiveDocument.Variables
If varItem.Name = "CopyNum" Then
bExists = True
Exit For
End If
Next varItem
' initialize document variable if doesn't exist
If Not bExists Then
ActiveDocument.Variables.Add _
Name:="CopyNum", Value:=0
End If
' ask how many to print
lCopiesToPrint = InputBox( _
Prompt:="How many copies?", _
Title:="Print And Number Copies", _
Default:="1")
' ask where to start numbering
lCopyNumFrom = CLng(InputBox( _
Prompt:="Number at which to start numbering copies?", _
Title:="Print And Number Copies", _
Default:=CStr(ActiveDocument.Variables("CopyNum") + 1)))
' loop through the print-write-print cycle
For lCounter = 0 To lCopiesToPrint - 1
' update the document variable
ActiveDocument.Variables("CopyNum") = _
lCopyNumFrom + lCounter
' print this numbered copy
ActiveDocument.PrintOut Copies:=1
Next lCounter
End Sub
Deze doet exact wat ie moet doen (vragen hoeveel prints ik wil en vanaf welk nummer beginnen met printen, en vervolgens onthouden waar ie gebleven is). Het enige wat ik er het liefst eruit wil halen is dat stukje dat onthoud waar ie gebleven is. Hij zou nadat het printen compleet is, niet het laatste nummer moeten laten zien, maar geen informatie (dus gewoon blank). Ik denk dat het iets te maken zou moeten hebben met een herhaling van het laatste stukje (loop trough the print-write-print cycle) maar ik weet niet hoe dat ik het moet verwerken.
Daarnaast zou ik ook graag (maar weet niet of dat dat mogelijk is) deze macro automatisch laten draaien op het moment dat er via het menu (of ctrl+P) wordt geprint. Kan dit, of kun je een macro alleen runnen door de specifieke knop of snel toets te gebruiken?
Ik heb een leeg voorbeeld bestandje aangehangen waarin de code zoals ik hem nu heb staat.
Alvast bedankt voor de hulp.
Met vriendelijke groet,
Annette Gerrits
Bekijk bijlage example TR.docm