Load vba

Implementação de melhorias e aumento no nível de segurança.

Moderador: Moderadores

Responder
Avatar do usuário
Ismaeldoxp
Bronze 1/3
Bronze 1/3
Mensagens: 152
Registrado em: Sex 03 Nov 2006 12:00:00 am

Load vba

Mensagem por Ismaeldoxp »

Olá galera,

Preciso de uma ajudinha. To querendo abrir um form que eu criei usando lisp e estou me matando.
Na realidade, criei um form no vb do CAD sem nada, apenas com um botão com definição de Exit. (Apenas pra teste). Salvei o arquivo dvb em uma pasta. E quero criar uma lisp pra puxar esse arquivo. So que eu estou estudando aqui e sei que puxo ele com o vbaload, so que nao aparece na tela o form que eu criei. alguem poderia me informar como puxar esse form para que ele aparecesse na tela?

Desde já agradeço.

Flw
Avatar do usuário
svfabi
Bronze 1/3
Bronze 1/3
Mensagens: 100
Registrado em: Qui 31 Ago 2006 12:00:00 am
Localização: Brasilia DF

Mensagem por svfabi »

Veja se isto te ajuda

Código: Selecionar todos

(defun c: CarregaMacro()
(setvar "fikedia" 0) 
(command "_VBALOAD" "c:\\meus documentos\\projeto.dvb") ;exemplo de endereço
(setvar "fikedia" 1) 
(command " _VBARUN"  "macro1")
)
Avatar do usuário
svfabi
Bronze 1/3
Bronze 1/3
Mensagens: 100
Registrado em: Qui 31 Ago 2006 12:00:00 am
Localização: Brasilia DF

Mensagem por svfabi »

Ops...
onde se lê (setvar "fikedia" 0)
é (setvar "filedia" 0)
Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton »

Faça o seu form normalmente.... aqui fiz um teste simples, criei um Form com um botao apenas, onde sua ação ao clique é:

Código: Selecionar todos

Private Sub CommandButton1_Click()
  Me.Hide
End Sub
No "Thsidrawing" (no Project Explorer, no nó AutoCAD Objects), crie uma Sub para chamar o Form:

Código: Selecionar todos

Sub teste_macro()
  UserForm1.Show vbModal
End Sub
Agora, no seu lisp, coloque isso:

Código: Selecionar todos

(defun c:teste()
  (vl-vbaload "c:/Project.dvb")
  (vl-vbarun "teste")
  )
assim, o lisp carrega o DVB, chama a macro "teste_macro" e esta por sua vez, mostra o Userform1....


Agora considere o seguinte: Voce precisa mesmo de lisp+vba?
se a lisp está ai apenas para definir um comando que roda uma macro que faz todo o serviço pois so o vba mostra formularios que o lisp nao consegue com DCL, posso sugerir que use o VB.NET Express Edition da Microsoft (que é DE GRAÇA), porque:

O VB.NET vai permitir que as Sub sejam comandos do cad sem precisar de lisps intermediarias
O codigo vba vai ser praticamente o mesmo que o vb.net

um exemplo:
Esta é uma sub feita no vb.net:

Código: Selecionar todos

<CommandMethod("teste")> _
Sub teste()
  Msgbox ("Olá Mundo")
End Sub
A única diferença é o
<CommandMethod("teste")> _
que é um atributo da sub que dirá para o autocad que "teste" será um comando definido e poderá ser chamado na linha de comando

é isso...
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
Avatar do usuário
Ismaeldoxp
Bronze 1/3
Bronze 1/3
Mensagens: 152
Registrado em: Sex 03 Nov 2006 12:00:00 am

Mensagem por Ismaeldoxp »

Prezado Neyton, antes de mais nada vlw pela aula.
No tocante ao assunto, pedi uma lisp pois eu nao entendo nada de lisp e nem de VBA mas estou querendo aprender, depois disso ai eu passaria pra outros termos.
Bem, deu um problema aqui, na hora de puxar a lisp da o seguinte erro.

ERRO : Automation Error. Problem in loading DVB file

Eu peguei os dois arquivos joguei em uma pasta, dei um load com o appload dei o comando teste do lisp criado e nao aparece na tela. Poderia me dizer qual o erro?

Desde ja agradeço

Flw
Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton »

se vc nao entende nada de nenhum dos dois, aprenda o minimo da cada um pelo menos. e separadamente
a questao que vc colocou, uma lisp chamar uma macro em vba, é um topico mais avançado, que vc so deveria se preocupar depois de saber usar uma lisp simples e um vba simples...

por exemplo, nas duas linguagens, como pedir 2 numeros para o usuario e apresentar o resultado?

vc teria de saber qual função pede valores, qual função soma, qual função formata o resultado e qual apresenta para o usuario...

e respodendo sua pergunta, por que nao funciounou:
pode ser por causa de onde vc salvou o dvb, a lisp tem que saber o caminho correto do dvb e a macro tem que ter o nome certo...

e a macro tem q funcionar tb.....
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
Responder