ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Prompt user to select a printer using a checkbox within a user (https://www.excelbanter.com/excel-programming/380871-re-prompt-user-select-printer-using-checkbox-within-user.html)

Tom Ogilvy

Prompt user to select a printer using a checkbox within a user
 
I didn't receive anything recently to the best of my knowledge

Anyway, you must have one workbook open, the workbook that holds the code.

but before you assign the printer either open a new workbook and close it
(application.ScreenUpdating = False, open the workbook, set the printer,
Application.Screenupdating = True) or have you code check the number of
visible workbooks and if it is 0, then don't assign the printer. Do it when
there is a workbook. I don't know what you are doing, so I don't know what
is an acceptable/workable workaround, but that is what comes to mind.

--
Regards,
Tom Ogilvy

"Freddy" wrote in message
...
Tom, I previously sent you sample code regarding this subject. However, I
have since then resolved the issue by using an OptionButton instead of a
CheckBox. There is another related error. I invoke my code after starting
Excel. Hoever, I noticed that I must have at least one workbook active,
even
if it's just "Book1" for my code to work. I normally start Excel without
any
workbook open by using the "/e" option within my shortcut. I got around
the
problem by just removing the "/e" option. By default, Excel opens a
workbook
named "Book#". The error I get when there is no workbook open and run my
code
is: 'Run-time error 1004': Method 'ActivePrinter' of object '_Application'
failed. My preference is not to have any workbook open. Any ideas?

"Tom Ogilvy" wrote:

in the vbe, do View=Immediate window

or Ctrl+G

--
Regards,
Tom Ogilvy


"Freddy" wrote:

I do not know what you mean by "the immediate window". Please explain.

"Tom Ogilvy" wrote:

In the click event of the checkbox, you would set the assignment
string to
the application.Activeprinter

for example, if I query this value on my machine in the immediate
window:

? application.ActivePrinter
\\ARDAPS01\1D373C on Ne03:

so if this weren't the activeprinter, you could set it with

application.ActivePrinter = "\\ARDAPS01\1D373C on Ne03:"


here is some sample code recently posted by a respected contributor
that
will enumerate the printers:

Author: Michael Pierron

Private Sub ListPrinters()
Dim wshNetwork As Object
Dim oDrives As Object
Dim oPrinters As Object
Dim iCount As Integer
Dim sCurrentprinter As String
sCurrentprinter = Application.ActivePrinter
Set wshNetwork = CreateObject("WScript.Network"*)
Set oDrives = wshNetwork.EnumNetworkDrives
Set oPrinters = wshNetwork.EnumPrinterConnecti*ons
For iCount = 0 To oPrinters.Count - 1 Step 2
Debug.Print "Printer Port " & oPrinters.Item(iCount) _
& " = " & oPrinters.Item(iCount + 1)

Next
End Sub

The output goes to the immediate window.

--
Regards,
Tom Ogilvy


"Freddy" wrote:

How can I set things up within a userform so that a user can select
a network
printer using a checkbox prior to running other subroutines? I
already have a
userform that the user makes other selections using checkboxes. Any
suggestions?
I am aware of how to use Application.Dialogs(xlDialogPrint).Show,
however, I
do not want the user prompted. Rather, I want the user just to
select from at
least 2 available network printers.





All times are GMT +1. The time now is 01:50 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com