EXLWS.PrintOut problem!!!!!!!!

Posted on 2006-10-25
Last Modified: 2010-04-16
Hello all,

Im stuck in a pretty bad situation here, I wrote a program that will export data to an excel spreadsheet and then print that sheet without the user ever seeing Excel.  When running the program on my computer everything works great but when I install the program on another machine and execute the command the program crashes.  Below is a sample of the code im using:

========BEGIN CODE==========
Set appEXL2 = New excel.Application
Set EXLwb2 = appEXL2.Workbooks.Open(GetWinDir & "\Cons Manager\MASTER CONS.xls")
Set EXLws2 = EXLwb2.Worksheets(1)
EXLws2.Visible = xlSheetVisible
With EXLws2
    .Cells(8, 6).Value = MDate
    .Cells(11, 6).Value = MRoute
    .Cells(14, 6).Value = MOrig
    .Cells(17, 6).Value = MDest
    .Cells(21, 2).Value = MCNUM
End With
========END CODE==========

Any ideas!?!?  This one is pretty urgent!
Question by:zraptor
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
LVL 18

Expert Comment

by:Jose Parrot
ID: 17809469

Sounds the file isn't present and the program crashs due commands to Excel for an unopen file. Or the default printer isn't available.

You may debug it with a step by step execution to discover where the problem occurs. For exemple, by creating a keyboard entry between each statement with a message. Something like "OK, file open", "Worksheet 1 OK", "Visible OK", etc.

Check the file in the new machine, read only? Need macros? Correct path?
Also if the default printer is online and corresponds to the actual printer.

LVL 18

Expert Comment

by:Jose Parrot
ID: 17814335

By checking the code in a VB 6 environment, I've modified it, as in the below code, which runs properly. (I have created a button to start the code)

Private Sub Command1_Click()

Dim appEXL2 As Object
Dim EXLwb2 As Object
Dim EXLws2 As Object

Set appEXL2 = CreateObject("Excel.Application")
Set EXLwb2 = appEXL2.Workbooks.Open("C:\PrintOutTest.xls")
Set EXLws2 = EXLwb2.Worksheets(1)

' EXLws2.Visible = xlSheetVisible

' The variables were modified for testing purposes
With EXLws2
    .Cells(8, 6).Value = "MDate2"
    .Cells(11, 6).Value = "MRoute2"
    .Cells(14, 6).Value = "MOrig2"
    .Cells(17, 6).Value = "MDest2"
    .Cells(21, 2).Value = "MCNUM2"
End With

' This will print the worksheet in the default printer

' Remember to close the file
' As it was modified, will ask for saving
result2 = appEXL2.Workbooks.Close()

End Sub


Author Comment

ID: 17824988
Will that code still work if I modify it to allow for the user to select a printer to print to?
LVL 18

Accepted Solution

Jose Parrot earned 500 total points
ID: 17825608

No. EXLwb2.PrintOut always directs the output to the default printer.

If you have more than one printer and want the user to select which one to print the document, then you should write a new dialog. Take a look at


Author Comment

ID: 17872743
Ok, The default printer thing was the problem, Thanks a lot for the help!!!!

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Displaying an arrayList in a listView using the default adapter is rarely the best solution. To get full control of your display data, and to be able to refresh it after editing, requires the use of a custom adapter.
Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question