How to use MS Flex Grid in Excel vba form

M

Mika

Hi guys

I have VB 6, and need to use the Ms Flex Grid control on a VBA form
within Excel.

However the incorporation of the control into the form is rejected
with the message "unsafe..." which normally occurs if you dont have
the license for it (or don't have VB 6 installed) which is not my
case.

In the forms in VB 6 environment, I don't have any problem.

Does anybody know how to use (load) the cotrol on the Excel form?
 
G

GS

Mika was thinking very hard :
Hi guys

I have VB 6, and need to use the Ms Flex Grid control on a VBA form
within Excel.

However the incorporation of the control into the form is rejected
with the message "unsafe..." which normally occurs if you dont have
the license for it (or don't have VB 6 installed) which is not my
case.

In the forms in VB 6 environment, I don't have any problem.

Does anybody know how to use (load) the cotrol on the Excel form?

When the userform is active in design view, right-click the Toolbox and
you'll be able to add additional controls. It will, of course, be
necessary to distribute (and register) the control with your vba
project in order for it to work on other machines.
 
M

Mika

Mika was thinking very hard :






When the userform is active in design view, right-click the Toolbox and
you'll be able to add additional controls. It will, of course, be
necessary to distribute (and register) the control with your vba
project in order for it to work on other machines.

--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc

GS, I didn't explain it clearly.
There is not problem to add the control to the toolbox as you
describe. The error appears when I try to put such control FROM the
toolbox into the Form. Then, it is not accepted.
 
G

GS

It happens that Mika formulated :
GS, I didn't explain it clearly.
There is not problem to add the control to the toolbox as you
describe. The error appears when I try to put such control FROM the
toolbox into the Form. Then, it is not accepted.

I see. I don't get that when I draw the control on a userform (or
drag/drop it there). It seems to work just fine for me. Maybe you could
provide more info like which version of Excel you're working in and the
version of MSFlexGrid.ocx you're trying to use.
 
M

Mika

Hi Mika

Userforms are not compiled like exe files are. To use a control on a
userform, the user needs a license to run the control in "design mode" -here
meaning a valid Visual Studio 6 installation.

So in short, you can't do this.

Best wishes Harald


Just for the records, in case somebody got the same problem, I was
able to solve it in the most unusual way:

- First: yes, I do have a legal version of VB 6 installed, and as I
said I can work in VB and the Flex grid without problem.

I found that in another excel form my Common dialog control stopped
working as well, getting the error; "Class not registered...", on top
of that, another control used: Tree list, had the same error.

Therefore I re-registered both controls, with regserv32, and voila !
the MS FlexGrid began to work! I didn't have to register the MS
FlexGrid control.

What is the reason ?. I have no clue.
 
H

Harald Staff

Mika said:
Just for the records, in case somebody got the same problem, I was
able to solve it in the most unusual way:
- First: yes, I do have a legal version of VB 6 installed, and as I
said I can work in VB and the Flex grid without problem.

Ah good. For the records, sorry I misunderstood your problem. It usually is:
A userform like that will not run on other computers that doesn't have VB6,
even when the controls are properly installed and registered.

Best wishes Harald
 
G

GS

Harald Staff formulated the question :
Ah good. For the records, sorry I misunderstood your problem. It usually is:
A userform like that will not run on other computers that doesn't have VB6,
even when the controls are properly installed and registered.

Best wishes Harald

Sorry Harald, but I disagree! Also for the record, I use VB6 controls
quite a lot in Excel VBA projects and they run without problem on any
machine I install the project to. Seems they only require being
registered on the target machine (regardless of where they're installed
on that machine). I can't speak for all VB6 controls used in MSO VBA
projects, but the ones I use most often are:

comctl32.ocx
comdlg32.ocx
msflxgrd.ocx
mshflxgd.ocx
dbgrid32.ocx
tabctl32.ocx

...all of which work just fine.
 
G

GS

Harald Staff has brought this to us :
No problem, I'd love to be wrong here.
VB6 is seriously obsolete. It's either like I always was wrong, or the
licensing problem went away when VB6 support died. Or maybe just different
combinations of versions of things behave different.

Best wishes Harald

I can say that I have had problems in the past with different versions
of these controls, in different versions of Excel. Seems I have been
able to (over time) come up with the right versions to use in my VBA
projects. Now that I primarily use VB6 COMAddins, my Excel projects are
now pure VB6. This, of course, is not always the case since some
clients specify their solutions be VBA.

Knd regards,
 
Joined
Jan 11, 2017
Messages
1
Reaction score
0
Do I have to have Visual Studio installed, or can I just make FlexGrid available in VBA in Excel by downloading it and registering it in syswow64? Is anyone using it that way? And, if so, does it keep the component in the spreadsheet, or would I have do do the download/register for any user's machine? Sorry to be so ignorant about this...
 

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