Visualization problem .xls file with office 2007

P

perf

Hi, I write because I'm experiencing a quite strange problem with Excel 2007
and
..xls file.
Time ago I created an add-in in vba that creates a toolbar that allows
depending on the chosen button to insert custom designs by me (hysteresis,
thresholds etc etc), and then connects these blocks together with normal
excel connectors. In Office 2003 everything was fine. Now I'm having problems
in 2007: to maintain compatibility with other PCs that have Office 2003
installed on and must to work on files, I decided to keep the format. xls as
the default for all.
But there is a strange thing: when I open, in 2007, the xls files created in
office 2003 many blocks are 'moved' graphically (unpredictably), while
connectors are in place and go properly where it should be the blocks.
Moreover, as I try to
move the block, connectors move immediately.
If I move correctly the blocks and save the .xls file and reopen it, it
re-happens equal. in 2003 it's all perfect.
I hope I explained ...

Furthermore, if in 2007 I save the file as. xlsx after postioning correctly
the blocks,
the problem does not happen, and everything is perfect. I then tried to open
the .xlsx with a patched Office 2003, but then the problem is in 2003.

do you think that there is a solution to this problem? it seems that's it's
only a display mismatch.


thank you in advance

mark
 
M

Martin Brown

perf said:
Hi, I write because I'm experiencing a quite strange problem with Excel 2007
and
.xls file.
Time ago I created an add-in in vba that creates a toolbar that allows
depending on the chosen button to insert custom designs by me (hysteresis,
thresholds etc etc), and then connects these blocks together with normal
excel connectors. In Office 2003 everything was fine. Now I'm having problems
in 2007: to maintain compatibility with other PCs that have Office 2003
installed on and must to work on files, I decided to keep the format. xls as
the default for all.
But there is a strange thing: when I open, in 2007, the xls files created in
office 2003 many blocks are 'moved' graphically (unpredictably), while
connectors are in place and go properly where it should be the blocks.
Moreover, as I try to
move the block, connectors move immediately.
If I move correctly the blocks and save the .xls file and reopen it, it
re-happens equal. in 2003 it's all perfect.
I hope I explained ...

Furthermore, if in 2007 I save the file as. xlsx after postioning correctly
the blocks,
the problem does not happen, and everything is perfect. I then tried to open
the .xlsx with a patched Office 2003, but then the problem is in 2003.

do you think that there is a solution to this problem? it seems that's it's
only a display mismatch.

The only solution to this problem involves the liquidation of the cowboy
development team responsible for the abortion that is XL2007.

Just about every aspect of shapes is made incompatible with all previous
versions. Top, Left, Bottom, Right changed to Top, Left, Width, Height.

Some objects will not draw correctly in XL2007 if they are closer to the
zero axes of the coordinate system. Charts are glacially slow.

You have to fork the code. It is possible to make an application using
graphical objects that will work in both the radically different choices
of parameterisation. However, forking the code is easier.

Regards,
Martin Brown
 
P

perf

Thank Martin for your witty reply.

are undecided whether to laugh about this issue or start cursing against
those cowboys... I will choose the first solution, I guess.

in case of any other ideas by anyone, please let me know

bye

mark
 
J

JLatham

I believe he means to determine the version number for the copy of Excel that
is running and taking 2 paths depending on what version you're using:

If Val(Application.Version) >=> 12 Then
'code for Excel 2007 (and presumably 2010) here
Else
'code for pre-2007 versions of Excel here
End If

Perhaps he meant to fork the code before it forks you?? Which it seems to
have already done.
 
P

perf

yes, I think he meant to split in that way the code for excel 2007 and excel
2003.

by the way, this is not true solution of the problem in my case, because I
should open in 2007 files created before in office 2003... so I have the same
problems, also with code fork.

so, I have been forked. ahi! : (
 
M

Martin Brown

perf said:
yes, I think he meant to split in that way the code for excel 2007 and excel
2003.

by the way, this is not true solution of the problem in my case, because I
should open in 2007 files created before in office 2003... so I have the same
problems, also with code fork.

so, I have been forked. ahi! : (

Depending on how much of a hit you can stand on the graphics speed if
one copy *has* to work on both you can determine which XL version at
startup and then create your own versions of each shape drawing routine
used that does the right thing based on a global boolean XL2003.

eg. (untested)

Sub MyAddline(s As Shape, tx, ty, bx, by)
if XL2003 then
s.Addline(tx,ty,bx,by)
else
s.Addline(tx,ty, tx+bx, ty+by)
endif
end sub

etc.

Regards,
Martin Brown
 
P

perf

Thanks for your response, I finally found the culprit:

the fXXX... function autosize of text boxes that I use to make the blocks of
my library. if I do not use, both in 2003 and in 2007 I see everything fine,
with. xls file.

probably it's poorly managed in 2007.

in return for which I'm having another problem, more serious, which I will
post
another special application.

i hope to see you there. (for now, I have forked excel)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top