pedorus schreef op maandag 10 januari 2011 @ 17:51:
Ik denk dat ActivePrinter geen spatie bevat, waardoor Left wordt aangeroepen met argument -1 voor de lengte, wat foutmelding 5 geeft. Eenvoudige oplossing is misschien strPrinter=Activeprinter, maar ik weet niet wat die macro verder doet.

In word 2003 doet het wel wat het moet doen, maar in office 2010 werkt het niet. Maar als ik de foutmelding krijg en ik beëindig het. En ik probeer weer snelafdrukken, dan doet die het wel. Maar dan krijg ik de logo verkeerd afgedrukt, maar hij doet het wel (logo plaatsen).
Hier wat meer van de code die ik gebruik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| If HeeftDocLogo = True And blnNoLogo = False Then
'Logo instellingen zetten
Haal_Configuratie_Op
strPrinter = Left(ActivePrinter, InStr(ActivePrinter, " ") - 1)
intTray = CInt("0" & System.PrivateProfileString(strPrinterBestand, strPrinter, "Voordruk"))
For Each secTemp In ActiveDocument.Sections
If intTray > 0 Then
With secTemp.PageSetup
.FirstPageTray = intTray
.OtherPagesTray = intTray
End With
Else
With secTemp.PageSetup
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
End With
End If
Next secTemp
End If
.Execute
End If
End With
Else
If HeeftDocLogo = True And blnNoLogo = False Then
'Logo instellingen zetten
Haal_Configuratie_Op
strPrinter = Left(ActivePrinter, InStr(ActivePrinter, " ") - 1)
intTray = CInt("0" & System.PrivateProfileString(strPrinterBestand, strPrinter, "Voordruk"))
For Each secTemp In ActiveDocument.Sections
If intTray > 0 Then
With secTemp.PageSetup
.FirstPageTray = intTray
.OtherPagesTray = intTray
End With
Else
With secTemp.PageSetup
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
End With
End If
Next secTemp
End If
ActiveDocument.PrintOut
End If |