Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Comunicação Dde (muuuuuuuita Difildade)


Guest REGISCRUZ

Pergunta

Guest REGISCRUZ

Olá pessoal por favor, me ajudem......

Preciso fazer meu programa acessar uma variável que esta dentro de um outro aplicativo usando DDE. Um amigo me enviou um exemplo em Excel que faz exatamente o que eu quero usando uma macro e funciona perfeitamente.

Meu problema é que preciso fazer isso em VB e não esta funcionando, coloquei a mesma rotina da macro com algumas alterações de adaptação mas sempre quando eu exeto da o erro '424' (Object required).

Segue abaixo a rotina da macro e em seguida a minha rotina.

'rotina que esta na macro do Excel (funcionando)

Private Sub CommandButton1_Click()

Dim ActiveCell As Object

Set ActiveCell = ActiveSheet.Cells(1, 1)

ABC = Application.DDEInitiate("dbsr", "pcim") 'inicia a comunicação

Application.DDEPoke ABC, "A:21", ActiveCell 'escreve o valor

Application.DDETerminate ABC 'encerra a comunicação

End Sub

'rotina que estou usando no VB (com problema)

Private Sub Command1_Click()

'ABC é uma variavel qualquer que vai receber o numero

'do canal DDE e pcim é o nome do programa no qual eu

'quero me conectar

ABC = Application.DDEInitiate("dbsr", "pcim") 'inicia a comunicação

'a:21 é uma variavel de sistema que eu quero acessar

'dentro do pcim e 100 é o valor que eu quero escrever nela

Application.DDEPoke ABC, "a:21", Str$(100) 'escreve o valor

'Aqui eu encerro minha comunicação DDE

Application.DDETerminate ABC

End Sub

Por favor, me ajudem....

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Sim, isso acontece porque o VB não tem um objeto Application, como existe nos programas com VBA (Word e Excel, por exemplo). A comunicação via DDE no VB é feita pelas propriedas do form que iniciam com Link. Só não me pergunte como, porque eu também nunca descobri :P. Tanto que tive que montar uma biblioteca própria para fazer o mesmo trabalho (se for útil: http://www.gs.kitbr.com/xcomm.html).

De qualquer maneira, talvez você possa utilizar o próprio Application do Excel no VB. Experimente o seguinte código aí (no VB mesmo):

Set x = CreateObject("Excel.Application")
ABC = x.DDEInitiate("dbsr", "pcim") 'inicia a comunicação
x.DDEPoke ABC, "a:21", Str$(100) 'escreve o valor
x.DDETerminate ABC

Veja se dá certo.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...