|
Hi everybody.
In my program I have some data that is calculated after some input from the
user. I have written some code that opens an Excel workbook, with 5
worksheets and the calculated data (no database!)with some titles and info,
is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application
Public exlWbook As Excel.Workbook
Public exlWsheet As Excel.Worksheet
Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application)
exlAppl.SheetsInNewWorkbook = 5
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook)
exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad
With exlWsheet
..Name = "Metrisch " & intExcelSheets
..Columns.ColumnWidth = 15
..Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN"
With .Range("A1")
..Font.Name = "Times New Roman"
.....
.....
intExcelSheets += 1
exlWsheet.Application.Visible = True
exlWsheet.Select()
This code works wonderful with Excel 2003 installed on a computer, but it
doesn't with an older version installed.
Reason???
What possibilities do I have to make it work with no matter what version of
Excel installed???
Thanks.
Alain. | |
Share:
|
I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that
without knowing how it fails with <XL2003.
Alain "Mbuna" wrote: Hi everybody.
In my program I have some data that is calculated after some input from the user. I have written some code that opens an Excel workbook, with 5 worksheets and the calculated data (no database!)with some titles and info, is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application Public exlWbook As Excel.Workbook Public exlWsheet As Excel.Worksheet Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do
something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook
exlAppl.SheetsInNewWorkbook = 5
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook)
exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad With exlWsheet .Name = "Metrisch " & intExcelSheets .Columns.ColumnWidth = 15 .Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN" With .Range("A1") .Font.Name = "Times New Roman" .... .... intExcelSheets += 1 exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use
exlAppl.Visible = True
exlWsheet.Select()
I think this should work but have you tried .Activate too. This code works wonderful with Excel 2003 installed on a computer, but it doesn't with an older version installed. Reason??? What possibilities do I have to make it work with no matter what version of Excel installed???
Thanks.
Alain.
| | |
To clarify my response: Can you post the error message, the line it
trips up on etc. What do you mean by "it doesn't [work] with an older
version installed"?
Gman wrote: I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that without knowing how it fails with <XL2003.
Alain "Mbuna" wrote:
Hi everybody.
In my program I have some data that is calculated after some input from the user. I have written some code that opens an Excel workbook, with 5 worksheets and the calculated data (no database!)with some titles and info, is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application Public exlWbook As Excel.Workbook Public exlWsheet As Excel.Worksheet Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook exlAppl.SheetsInNewWorkbook = 5 exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad With exlWsheet .Name = "Metrisch " & intExcelSheets .Columns.ColumnWidth = 15 .Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN" With .Range("A1") .Font.Name = "Times New Roman" .... .... intExcelSheets += 1 exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use exlAppl.Visible = True
exlWsheet.Select()
I think this should work but have you tried .Activate too.
This code works wonderful with Excel 2003 installed on a computer, but it doesn't with an older version installed. Reason??? What possibilities do I have to make it work with no matter what version of Excel installed???
Thanks.
Alain.
| | |
Hi.
What I do (try) is open a Excel workbook with 5 worksheets and each time the
user of the application chooses to copy his results to Excel, then one of
the standard names of a worksheet is overwritten with the new name
"Metrisch" and number 1 to 5, and the data is entered in that worksheet.
Once 5 worksheets are used the user is forced to either save the excel
workbook or not and close excel.
There I use the COMexception to generate a messagebox (dutch text) which
tells the user to close or save excel. With a version of Excel older then
2003, the exception (so the messagebox) is thrown directly and Excel is not
shown. But, something does happen cause when I shut down the computer it
asks me if I want to save the Excel workbook (that I never saw).
See code below for use of exception:
Catch ex As Runtime.InteropServices.COMException
MessageBox.Show("Maximum aantal werkbladen voor deze applicatie is geopend!
" _
& "Bewaar uw gegevens en sluit Excel. " & vbCrLf _
& "Start Excel opnieuw via het menu ""kopieer bestand""!", "Fout! Maximum
bereikt!", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
"Gman" <nah> schreef in bericht news:Of*************@TK2MSFTNGP14.phx.gbl... To clarify my response: Can you post the error message, the line it trips up on etc. What do you mean by "it doesn't [work] with an older version installed"?
Gman wrote: I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that without knowing how it fails with <XL2003.
Alain "Mbuna" wrote:
Hi everybody.
In my program I have some data that is calculated after some input from the user. I have written some code that opens an Excel workbook, with 5 worksheets and the calculated data (no database!)with some titles and info, is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application Public exlWbook As Excel.Workbook Public exlWsheet As Excel.Worksheet Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook exlAppl.SheetsInNewWorkbook = 5 exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad With exlWsheet .Name = "Metrisch " & intExcelSheets .Columns.ColumnWidth = 15 .Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN" With .Range("A1") .Font.Name = "Times New Roman" .... .... intExcelSheets += 1 exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use exlAppl.Visible = True
exlWsheet.Select()
I think this should work but have you tried .Activate too.
This code works wonderful with Excel 2003 installed on a computer, but it doesn't with an older version installed. Reason??? What possibilities do I have to make it work with no matter what version of Excel installed???
Thanks.
Alain.
| | |
I suspect your problem is linked into "COMexception" only because your code
works for me but did not try the "COMexception". I am using Excel 2002.
"Alain "Mbuna"" <mb***@telenet.be> wrote in message
news:6S*********************@phobos.telenet-ops.be... Hi.
What I do (try) is open a Excel workbook with 5 worksheets and each time the user of the application chooses to copy his results to Excel, then one of the standard names of a worksheet is overwritten with the new name "Metrisch" and number 1 to 5, and the data is entered in that worksheet. Once 5 worksheets are used the user is forced to either save the excel workbook or not and close excel.
There I use the COMexception to generate a messagebox (dutch text) which tells the user to close or save excel. With a version of Excel older then 2003, the exception (so the messagebox) is thrown directly and Excel is not shown. But, something does happen cause when I shut down the computer it asks me if I want to save the Excel workbook (that I never saw).
See code below for use of exception: Catch ex As Runtime.InteropServices.COMException MessageBox.Show("Maximum aantal werkbladen voor deze applicatie is geopend! " _ & "Bewaar uw gegevens en sluit Excel. " & vbCrLf _ & "Start Excel opnieuw via het menu ""kopieer bestand""!", "Fout! Maximum bereikt!", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
"Gman" <nah> schreef in bericht news:Of*************@TK2MSFTNGP14.phx.gbl... To clarify my response: Can you post the error message, the line it trips up on etc. What do you mean by "it doesn't [work] with an older version installed"?
Gman wrote: I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that without knowing how it fails with <XL2003.
Alain "Mbuna" wrote:
Hi everybody.
In my program I have some data that is calculated after some input from the user. I have written some code that opens an Excel workbook, with 5 worksheets and the calculated data (no database!)with some titles and info, is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application Public exlWbook As Excel.Workbook Public exlWsheet As Excel.Worksheet Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook exlAppl.SheetsInNewWorkbook = 5 exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad With exlWsheet .Name = "Metrisch " & intExcelSheets .Columns.ColumnWidth = 15 .Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN" With .Range("A1") .Font.Name = "Times New Roman" .... .... intExcelSheets += 1 exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use exlAppl.Visible = True
exlWsheet.Select()
I think this should work but have you tried .Activate too.
This code works wonderful with Excel 2003 installed on a computer, but it doesn't with an older version installed. Reason??? What possibilities do I have to make it work with no matter what version of Excel installed???
Thanks.
Alain.
| | |
If you can't see the Excel instance, it appears the line where you make
Excel visible is either not being run at all - or isn't working. Two
follow up questions:
(a) Did you try my suggested replacement line there? (exlAppl.Visible =
True).
(b) Are you sure that when running on earlier XL versions that this line
is even reached?
With respect to needing the user to save the workbook, you could try a
different approach whereby you perform this directly through Excel
rather than catching the exception. (I've never used COMexception so I
have no suggestions with that method.) For example:
When you've finished the workbook and need the user to save try
something like:
'Making your workbook and worksheets here
'Loop until the user either saves the workbook or deliberately
'chooses to abort
Do While not exlWbook.Saved
'force a save, this prompts user to choose a location
exlAppl.Dialogs(5).Show '(xlDialogSaveAs = 5)
'check whether the user really did save the workbook
If Not exlWbook.Saved then
'ask user whether they want to abort
myAnswer = MessageBox.Show( _
"You should save the workbook. Do you wish to try again?", _
"Saving = good", _
MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
'if they do want to abort then set the "saved"
'property to true
if myanswer = vbNo then exlWbook.Saved = True
End if
Loop
'If the user has aborted then myAnswer = vbno
HTH
Alain "Mbuna" wrote: Hi.
What I do (try) is open a Excel workbook with 5 worksheets and each time the user of the application chooses to copy his results to Excel, then one of the standard names of a worksheet is overwritten with the new name "Metrisch" and number 1 to 5, and the data is entered in that worksheet. Once 5 worksheets are used the user is forced to either save the excel workbook or not and close excel.
There I use the COMexception to generate a messagebox (dutch text) which tells the user to close or save excel. With a version of Excel older then 2003, the exception (so the messagebox) is thrown directly and Excel is not shown. But, something does happen cause when I shut down the computer it asks me if I want to save the Excel workbook (that I never saw).
See code below for use of exception: Catch ex As Runtime.InteropServices.COMException MessageBox.Show("Maximum aantal werkbladen voor deze applicatie is geopend! " _ & "Bewaar uw gegevens en sluit Excel. " & vbCrLf _ & "Start Excel opnieuw via het menu ""kopieer bestand""!", "Fout! Maximum bereikt!", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
"Gman" <nah> schreef in bericht news:Of*************@TK2MSFTNGP14.phx.gbl...
To clarify my response: Can you post the error message, the line it trips up on etc. What do you mean by "it doesn't [work] with an older version installed"?
Gman wrote:
I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that without knowing how it fails with <XL2003.
Alain "Mbuna" wrote:
Hi everybody.
In my program I have some data that is calculated after some input from the user. I have written some code that opens an Excel workbook, with 5 worksheets and the calculated data (no database!)with some titles and info, is entered in the worksheet in a printable format.
This is some of the code...
Public exlAppl As Excel.Application Public exlWbook As Excel.Workbook Public exlWsheet As Excel.Worksheet Public intExcelSheets As Int16 = 1
exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook exlAppl.SheetsInNewWorkbook = 5 exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet)
'Voeg data toe aan het excel werkblad With exlWsheet .Name = "Metrisch " & intExcelSheets .Columns.ColumnWidth = 15 .Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE NUMMERSOORTEN" With .Range("A1") .Font.Name = "Times New Roman" .... .... intExcelSheets += 1 exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use exlAppl.Visible = True
exlWsheet.Select()
I think this should work but have you tried .Activate too.
This code works wonderful with Excel 2003 installed on a computer, but it doesn't with an older version installed. Reason??? What possibilities do I have to make it work with no matter what version of Excel installed???
Thanks.
Alain. | | |
See comments between lines:
"Gman" <nah> schreef in bericht
news:Og**************@TK2MSFTNGP14.phx.gbl... If you can't see the Excel instance, it appears the line where you make Excel visible is either not being run at all - or isn't working. Two follow up questions:
(a) Did you try my suggested replacement line there? (exlAppl.Visible = True).
Not yet! I will make these changes tonight and then try them out tomorrow,
because I need to do this at work. At home no longer a PC running previous
Excel versions. (b) Are you sure that when running on earlier XL versions that this line is even reached?
Not really, because I don't have VB.net at work. So, the only thing I can do
is install the published application and run it to check on errors or
problems. With respect to needing the user to save the workbook, you could try a different approach whereby you perform this directly through Excel rather than catching the exception. (I've never used COMexception so I have no suggestions with that method.) For example:
When you've finished the workbook and need the user to save try something like:
'Making your workbook and worksheets here
'Loop until the user either saves the workbook or deliberately 'chooses to abort Do While not exlWbook.Saved
'force a save, this prompts user to choose a location exlAppl.Dialogs(5).Show '(xlDialogSaveAs = 5)
'check whether the user really did save the workbook If Not exlWbook.Saved then
'ask user whether they want to abort myAnswer = MessageBox.Show( _ "You should save the workbook. Do you wish to try again?", _ "Saving = good", _ MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
'if they do want to abort then set the "saved" 'property to true if myanswer = vbNo then exlWbook.Saved = True
End if
Loop
'If the user has aborted then myAnswer = vbno
HTH
Alain "Mbuna" wrote: Hi.
What I do (try) is open a Excel workbook with 5 worksheets and each time the user of the application chooses to copy his results to Excel, then one of the standard names of a worksheet is overwritten with the new name "Metrisch" and number 1 to 5, and the data is entered in that worksheet. Once 5 worksheets are used the user is forced to either save the excel workbook or not and close excel.
There I use the COMexception to generate a messagebox (dutch text) which tells the user to close or save excel. With a version of Excel older then 2003, the exception (so the messagebox) is thrown directly and Excel is not shown. But, something does happen cause when I shut down the computer it asks me if I want to save the Excel workbook (that I never saw).
See code below for use of exception: Catch ex As Runtime.InteropServices.COMException MessageBox.Show("Maximum aantal werkbladen voor deze applicatie is geopend! " _ & "Bewaar uw gegevens en sluit Excel. " & vbCrLf _ & "Start Excel opnieuw via het menu ""kopieer bestand""!", "Fout! Maximum bereikt!", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
"Gman" <nah> schreef in bericht news:Of*************@TK2MSFTNGP14.phx.gbl...
To clarify my response: Can you post the error message, the line it trips up on etc. What do you mean by "it doesn't [work] with an older version installed"?
Gman wrote:
I don't have an earlier version of Excel handy so I'm guessing here....
A few comments made inline below. I can't really comment beyond that without knowing how it fails with <XL2003.
Alain "Mbuna" wrote:
>Hi everybody. > >In my program I have some data that is calculated after some input from >the user. I have written some code that opens an Excel workbook, with 5 >worksheets and the calculated data (no database!)with some titles and >info, is entered in the worksheet in a printable format. > >This is some of the code... > >Public exlAppl As Excel.Application >Public exlWbook As Excel.Workbook >Public exlWsheet As Excel.Worksheet >Public intExcelSheets As Int16 = 1 > >exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) >exlAppl.SheetsInNewWorkbook = 5
This changes the user's Excel settings for good. You should do something like:
OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook exlAppl.SheetsInNewWorkbook = 5 exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook
>exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) >exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet) > >'Voeg data toe aan het excel werkblad >With exlWsheet >.Name = "Metrisch " & intExcelSheets >.Columns.ColumnWidth = 15 >.Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE >NUMMERSOORTEN" >With .Range("A1") >.Font.Name = "Times New Roman" >.... >.... >intExcelSheets += 1 >exlWsheet.Application.Visible = True
This looks a bit strange to me - why not use exlAppl.Visible = True
>exlWsheet.Select()
I think this should work but have you tried .Activate too.
>This code works wonderful with Excel 2003 installed on a computer, but >it doesn't with an older version installed. >Reason??? >What possibilities do I have to make it work with no matter what >version of Excel installed??? > >Thanks. > >Alain. >
| | |
That's the problem with checking for multiple versions :-(
When I need to check something on a machine w/o the development
environment I create a new version that creates a log file and appends a
line for each area of concern. Something like:
Date/Time - Creating Excel Instance...
Date/Time - Excel Instance created
Date/Time - Creating workbook...
etc.
That way you can see exactly where it's getting to and where it's
tripped up.
Alain "Mbuna" wrote: See comments between lines:
"Gman" <nah> schreef in bericht news:Og**************@TK2MSFTNGP14.phx.gbl...
If you can't see the Excel instance, it appears the line where you make Excel visible is either not being run at all - or isn't working. Two follow up questions:
(a) Did you try my suggested replacement line there? (exlAppl.Visible = True).
Not yet! I will make these changes tonight and then try them out tomorrow, because I need to do this at work. At home no longer a PC running previous Excel versions.
(b) Are you sure that when running on earlier XL versions that this line is even reached?
Not really, because I don't have VB.net at work. So, the only thing I can do is install the published application and run it to check on errors or problems.
With respect to needing the user to save the workbook, you could try a different approach whereby you perform this directly through Excel rather than catching the exception. (I've never used COMexception so I have no suggestions with that method.) For example:
When you've finished the workbook and need the user to save try something like:
'Making your workbook and worksheets here
'Loop until the user either saves the workbook or deliberately 'chooses to abort Do While not exlWbook.Saved
'force a save, this prompts user to choose a location exlAppl.Dialogs(5).Show '(xlDialogSaveAs = 5)
'check whether the user really did save the workbook If Not exlWbook.Saved then
'ask user whether they want to abort myAnswer = MessageBox.Show( _ "You should save the workbook. Do you wish to try again?", _ "Saving = good", _ MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
'if they do want to abort then set the "saved" 'property to true if myanswer = vbNo then exlWbook.Saved = True
End if
Loop
'If the user has aborted then myAnswer = vbno
HTH
Alain "Mbuna" wrote:
Hi.
What I do (try) is open a Excel workbook with 5 worksheets and each time the user of the application chooses to copy his results to Excel, then one of the standard names of a worksheet is overwritten with the new name "Metrisch" and number 1 to 5, and the data is entered in that worksheet. Once 5 worksheets are used the user is forced to either save the excel workbook or not and close excel.
There I use the COMexception to generate a messagebox (dutch text) which tells the user to close or save excel. With a version of Excel older then 2003, the exception (so the messagebox) is thrown directly and Excel is not shown. But, something does happen cause when I shut down the computer it asks me if I want to save the Excel workbook (that I never saw).
See code below for use of exception: Catch ex As Runtime.InteropServices.COMException MessageBox.Show("Maximum aantal werkbladen voor deze applicatie is geopend! " _ & "Bewaar uw gegevens en sluit Excel. " & vbCrLf _ & "Start Excel opnieuw via het menu ""kopieer bestand""!", "Fout! Maximum bereikt!", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
"Gman" <nah> schreef in bericht news:Of*************@TK2MSFTNGP14.phx.gbl...
To clarify my response: Can you post the error message, the line it trips up on etc. What do you mean by "it doesn't [work] with an older version installed"?
Gman wrote:
>I don't have an earlier version of Excel handy so I'm guessing here.... > >A few comments made inline below. I can't really comment beyond that >without knowing how it fails with <XL2003. > > >Alain "Mbuna" wrote: > > > >>Hi everybody. >> >>In my program I have some data that is calculated after some input from >>the user. I have written some code that opens an Excel workbook, with 5 >>worksheets and the calculated data (no database!)with some titles and >>info, is entered in the worksheet in a printable format. >> >>This is some of the code... >> >>Public exlAppl As Excel.Application >>Public exlWbook As Excel.Workbook >>Public exlWsheet As Excel.Worksheet >>Public intExcelSheets As Int16 = 1 >> >>exlAppl = CType(CreateObject("Excel.Application"), Excel.Application) >>exlAppl.SheetsInNewWorkbook = 5 > > > This changes the user's Excel settings for good. You should do >something like: > > OriginalSheetsInNewWorkbook = exlAppl.SheetsInNewWorkbook > exlAppl.SheetsInNewWorkbook = 5 > exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) > exlAppl.SheetsInNewWorkbook = OriginalSheetsInNewWorkbook > > > >>exlWbook = CType(exlAppl.Workbooks.Add, Excel.Workbook) >>exlWsheet = CType(exlWbook.Worksheets(intExcelSheets), Excel.Worksheet) >> >>'Voeg data toe aan het excel werkblad >>With exlWsheet >>.Name = "Metrisch " & intExcelSheets >>.Columns.ColumnWidth = 15 >>.Range("A1").Value = "METRISCHE GARENLENGTE OMGEZET NAAR ALLE >>NUMMERSOORTEN" >>With .Range("A1") >>.Font.Name = "Times New Roman" >>.... >>.... >>intExcelSheets += 1 >>exlWsheet.Application.Visible = True > > This looks a bit strange to me - why not use > exlAppl.Visible = True > > > >>exlWsheet.Select() > > I think this should work but have you tried .Activate too. > > > >>This code works wonderful with Excel 2003 installed on a computer, but >>it doesn't with an older version installed. >>Reason??? >>What possibilities do I have to make it work with no matter what >>version of Excel installed??? >> >>Thanks. >> >>Alain. >>
| | This discussion thread is closed Replies have been disabled for this discussion. Similar topics
17 posts
views
Thread by Ange T |
last post: by
|
2 posts
views
Thread by jeffgeorge |
last post: by
|
7 posts
views
Thread by taylor.bryant |
last post: by
|
1 post
views
Thread by cybertof |
last post: by
|
17 posts
views
Thread by Mansi |
last post: by
|
12 posts
views
Thread by D. Shane Fowlkes |
last post: by
|
3 posts
views
Thread by Carlos Magalhaes |
last post: by
|
3 posts
views
Thread by Mitchell Vincent |
last post: by
|
6 posts
views
Thread by a.theil |
last post: by
|
1 post
views
Thread by Troy |
last post: by
| | | | | | | | | | |