Ir ao conteúdo

Excel UserForm para coleta de dados


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Estou tentando fazer um UserForm para coleta de dados e estou usando uma DDE(Dynamic Data Exchange) para fazer a comunicação entre a planilha e o software de comunicação, porém o modelo que o suporte do próprio software fornece é o seguinte:

 

assim funciona

Private Sub Validar_Click()
    DDEChannel = Application.DDEInitiate(app:="RSLinx", topic:="MOAGEM")
    DDEItem = "PERDA_AO_FOGO"
    Set Rangetopoke = Worksheets("Planilha1").Range("B3")
    Application.DDEPoke DDEChannel, DDEItem, Rangetopoke
    Application.DDETerminate DDEChannel
End Sub

 

porém eu gostaria de mudar o valor 'Rangetopoke' para o valor de um textbox como no exemplo abaixo (Não funcional):

 

Private Sub Validar_Click()
    DDEChannel = Application.DDEInitiate(app:="RSLinx", topic:="MOAGEM")
    DDEItem = "PERDA_AO_FOGO"
    Rangetopoke = LABORATORIO.TextBox_01.Value 'LABORATORIO UserForm 
    Application.DDEPoke DDEChannel, DDEItem, Rangetopoke
    Application.DDETerminate DDEChannel
    Unload LABORATORIO
End Sub

 

Nenhum erro apresenta porém não executa nada.

Postado
Em 12/01/2024 às 17:07, Midori disse:

Tenta deixar como estava no código anterior e faça a atribuição ao range que nesse caso é B3: Rangetopoke.Value = LABORATORIO.TextBox_01.Value

 

Fiz assim, porém dá erro de objeto obrigatório.

Private Sub Validar_Click()
    DDEChannel = Application.DDEInitiate(app:="RSLinx", topic:="MOAGEM")
    DDEItem = "PERDA_AO_FOGO"
    Set Rangetopoke.Value = LABORATORIO.TextBox_01.Value
    Application.DDEPoke DDEChannel, DDEItem, Rangetopoke
    Application.DDETerminate DDEChannel
    Unload LABORATORIO
End Sub

 

Postado

Faltou a linha da atribuição da referência range para Rangetopoke. E é aí que deve usar a instrução Set. Para a atribuição Value não se usa Set.

Postado
16 minutos atrás, Midori disse:

Faltou a linha da atribuição da referência range para Rangetopoke. E é aí que deve usar a instrução Set e não da forma que fez. Para esse tipo de atribuição, Value, não se usa Set.

 

tem como você escrever um exemplo? 😓 Estou tentando mas sempre dá erro de compilação, ainda sou iniciante no VBA 😅

Postado
8 minutos atrás, Midori disse:

É só pegar o primeiro código, que funciona, e acrescentar a atribuição que comentei no meu segundo post.

Ahhh! Agora entendi, o valor do TextBox vai escrever na célula e o valor da célula vai escrever no RangetoPoke

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...