Macro care printeaza fata-verso

Informatii despre cum se utilizeaza Microsoft Word 2003. Editare, formatare, automatizare de documente
Închis
Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Macro care printeaza fata-verso

Mesaj de Dr. Cloud » Mar Sep 08, 2009 9:46 am

Imprimanta mea imi permite sa printez documente fata-verso.
Problema este ca 90% din documentele ce le printez trebuie obligatoriu sa iasa fata-verso.
De multe ori uit sa fac treaba asta si le scot doar o fata, sau unde am nevoie sa fie pe cate o pagina uit sa schimb setarea si le scoate fata-verso.
Am incercat sa inregistrez un macro, dar degeaba. Le scoate tot pe o singura fata.
Are careva idee cum s-ar putea face asta?

Cod: Selectaţi tot

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 9/8/2009 by Alexandru Dionisie
'
    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

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Macro care printeaza fata-verso

Mesaj de Dr.Excel » Mar Sep 08, 2009 11:11 am

as zice sa setezi din cod doar imprimanta default:

Application.PrintOut ActivePrinter:="myPrinter"

imprimanta o setezi cu anumite setari default (din windows)
faci o copie a imprimantei, una cu setarile de double printing cealalta fara, iar din cod faci switch-ul intre ele :)

MCT, MCITP
MOS Master Instructor
IT Learning

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Macro care printeaza fata-verso

Mesaj de Dr. Cloud » Mar Sep 08, 2009 11:42 am

Imprimanta este setata default cea care ma intereseaza.
Ea are doua task-uri: sa printeze doar pe o fata si sa printeze fata-verso.
Pe mine ma interesa sa am doua comenzi (de fapt una) care sa printeze fata-verso.

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Macro care printeaza fata-verso

Mesaj de Dr.Excel » Mar Sep 08, 2009 11:58 am

pai vezi ca daca mergi la imprimanta default poti sa-i setezi preferences pentru fata-verso

MCT, MCITP
MOS Master Instructor
IT Learning

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Macro care printeaza fata-verso

Mesaj de Dr. Cloud » Mar Sep 08, 2009 12:08 pm

Pai dupa cum am zis mai sus, nu mereu scot fata-verso si de aceea nu pot sa las default asa. Tocmai de aceea as fi vrut sa fac 2 comenzi diferite.

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Macro care printeaza fata-verso

Mesaj de Dr.Excel » Mar Sep 08, 2009 12:20 pm

incearca sa mai instelezi in ca o data imprimanta si a doua copie seteaz-o la preferences cu single, iar din cod faci doar switch-ul intre ele
tare mi-e ca altfel trebuie sa apelam la ceva cod API :geek:

MCT, MCITP
MOS Master Instructor
IT Learning

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Macro care printeaza fata-verso

Mesaj de Dr. Cloud » Mar Sep 08, 2009 12:32 pm

Rezolvat.
Cum:
- am facut un macro care sa imi printeze normal (pe o pagina);
- am creat o copie a imprimantei si i-am facut setarile dorite pentru a printa fata-verso si i-am facut si ei un macro.

Cod: Selectaţi tot

Sub DoubleSided()
On Error GoTo print_err
    ActivePrinter = "HP_fata/verso"
    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
        Exit Sub
        
print_err:
        MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

Sub NormalPrint()
On Error GoTo print_err
    ActivePrinter = "HP"
    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
        Exit Sub
        
print_err:
        MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub
L.E. Am vazut solutia d.voastra si se pare ca aia era metoda mai usoara.

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1997
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: Macro care printeaza fata-verso

Mesaj de Dr.Excel » Mar Sep 08, 2009 12:39 pm

asa ;)

MCT, MCITP
MOS Master Instructor
IT Learning

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Macro care printeaza fata-verso

Mesaj de Dr. Cloud » Vin Sep 11, 2009 8:08 am

Pentru cei ce vor sa printeze fata-verso sau normal (doar daca imprimanta lor permite acest lucru) am modificat codul de mai sus si am adaugat si o procedura ce intreaba utilizatorul daca vrea sa printeze sau nu acel document sub forma dorita.
Aceste macro coduri pot fi apoi atasate unui buton ce poate fi pus pe Toolbar. (vezi poza)

Cod: Selectaţi tot

Sub DoubleSided()
On Error GoTo print_err
Dim x As Integer
  x = MsgBox("Vrei sa printezi fata-verso?", vbYesNo + vbInformation, "Fata-Verso")
     If x = vbYes = True Then
        ActivePrinter = "HP_fata/verso"
        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
      If x = vbNo = True Then
      End If
     End If
   Exit Sub
        
print_err:
        MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

Sub NormalPrint()
On Error GoTo print_err
Dim x As Integer
  x = MsgBox("Vrei sa printezi normal?", vbYesNo + vbInformation, "Normal")
     If x = vbYes = True Then
        ActivePrinter = "HP"
        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
      If x = vbNo = True Then
      End If
     End If
   Exit Sub
        
print_err:
        MsgBox err.Description, vbOKOnly + vbInformation, "Eroare"
End Sub

Închis

Înapoi la “Intrebari despre Word 2003”