Excel crashes if project is not compiled (urgent help please!)

  • Thread starter Thread starter Jos Vens
  • Start date Start date
J

Jos Vens

Hi,


I wonder if it is possible to compile my project on startup.

The problem is, I protect my project with a password. If I switch from
Office XP to Office 2003, it crashes. The reason is, it only works if it is
compiled on the same excel version.

If I compile my project on XP, it works on XP. If I open the project on 2003
(without macro's enabled), I can see the Compile Project is Black (not
greyed out), so if I compile it on 2003, save it and close it, it works on
2003!

I tried with sendkeys to open the code, but I cannot accomplish to send the
password.

Can anyone help (is there a command in VBA that enforce a compilation on
startup?). I found this command vWB.VBProject.MakeCompiledFile but it does
not seem to work.

Thanks!
Jos Vens
 
Compile code with code in VBE

Sub Compile()
Dim WB As Workbook
Set WB = Workbooks("Book1.xls")
With Application.VBE
.VBProjects(WB.VBProject.Name).VBComponents(1) _
.CodeModule.CodePane.Window.Visible = True
With .CommandBars.FindControl(Id:=578)
If .Enabled = True Then .Execute
End With
End With
End Sub

I don't think this will work if the project is protected, because you
couldn't make the code pane visible.
 
Thanks Tom,

but it is right: it only works if I don't protect it!

Is there a way to unprotect it procedurally? Can I provide the password with
sendkeys? For me, Excel blocks the input (procedure that is running) when
the dialog is asking the password so sendkeys does not make sense.
Jos
 
Hi Tom,

this code works! I provide a password but don't put the checkbox on (so I
can see the codepane. After compiling, I set the checkbox, save and close.
If I could now accomplish to open the project in the same manner, I get what
I want. What keys should I sent to let appear the password dialog for the
project of a xla-file of the list (if it is not the first in the list).

Thanks
Jos

Function COMPILE_Psw()

Dim vWB As Workbook

Set vWB = Workbooks("Psw.xla")

Application.VBE.VBProjects(vWB.VBProject.Name).VBComponents(1).CodeModule.CodePane.Window.Visible
= True
If Application.VBE.CommandBars.FindControl(ID:=578).Enabled = True Then
Application.VBE.CommandBars.FindControl(ID:=578).Execute
End If

Application.SendKeys "%xe+{TAB}{RIGHT}{TAB}v{TAB}{TAB}{TAB}~"

vWB.Save
vWB.Close

End Function
 
I don't know. but, some others have posted code for sendkeys to send the
password to the VBE project. Search this group in http://groups.google.com

It seems if you have to do all this and it isn't really supported, that you
shouldn't need to - that you have a more systemic problem
 

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

Back
Top