question

Como fazer um conversor de unidades VBA simple que faz referencia a uma planilha do excel (entrada e saida)?

Oi todos, eu escrevi esta folha bastante simple no excel na noite passada e agora eu gostaria de dar-lhe algum recurso do usuário através de uma interface Visual basic. Eu não tenho nenhuma experiência com VB, assim que eu estava esperando que alguém poderia me ajudar a descobrir como fazer algumas coisas, eu tentei olhar em linha, mas eu sou tão inexperiente com o software que eu ainda não sei quais palavras-chave para pesquisar.
Existem 2 grandes coisas que eu preciso fazer:

1) Eu vou ter um recurso com um título como "Insira o valor" [caixa de entrada]. O usuário irá digitar um valor numérico em que a caixa e ele vai para uma célula específica na planilha do excel; Neste caso, B2.

2) O próximo recurso terá uma caixa de saída. "Resultado" [saída]. Esta saída é controlada pelas funções do excel na célula B3. Assim, depois de inserir o valor para B2, B3 terá um valor de automático aparecem, e eu preciso o formulário VB para atualizar com o valor de B3.

Se minha explicação não é clara, apenas pense nisso como um conversor. Imagine que você queira converter o valor de entrada, B2, e o valor de saída é controlado por uma fórmula em B3. E toda a questão do userform do VBA é apenas para ignorar a planilha e permitir que a pessoa simplesmente digite no seu valor e tê-lo automaticamente mostrar o resultado.

É quase isso, há mais do que isso, mas esses 2 tarefas são a raiz do que preciso para descobrir, eu provavelmente pode contornar o resto.

Obrigado em Avançado para sua ajuda!
resposta Resposta
Você também pode fazer o que quiser sem um formulário de usuário.

Por exemplo, o seguinte manipulador de eventos Before_DoubleClick consultará o usuário para um valor. Quando entrou, ele exibirá uma caixa de mensagem com o resultado.

Copie o seguinte manipulador de eventos para a área de transferência:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

inputValue = Val (InputBox ("Insira o valor", "Input"))

Se inputValue = "" Then

Exit Sub

End If

Range("B2").Valor = inputValue

MsgBox Range("B3").Valor, vbOKOnly, "Resultado"

End Sub

Selecione a planilha apropriada e clique com o botão direito na guia da planilha.

Selecione 'Exibir código'.

Cole o manipulador de eventos na área de edição à direita.

Feche o VBE e retornar à planilha.

Clique duas vezes em qualquer célula, digite um valor e pressione Enter ou clique em 'OK'.

==================

Se você deseja usar um formulário de usuário para fazer isso, e você tiver criado seu formulário de usuário usando os nomes de controle e formulário de usuário padrão, você pode usar os seguintes códigos.

Primeiro, você precisará criar uma macro para chamar o userform.

Copie essa macro para a área de transferência:

Sub shwForm)

Userform1.Show

End Sub

Pressione ALT + F11

Nos menus na parte superior do VBE, selecione Inserir > módulo

Cole a macro na área de edição à direita.

Feche o VBE e retornar à planilha.

Se você quiser mostrar o formulário usando um botão de comando, crie uma na barra de ferramentas Formulários. Atribua a macro acima para o commandbutton.

Caso contrário, você pode chamar a macro usando um atalho de teclado.

Pressione ALT + F8

Quando abre a janela de Macros, realçar a macro e clique em 'Opções'...

Digite uma letra para ser usado como um atalho de teclado e clique em 'OK'.

Feche a janela de Macros.

Agora isso permitirá que você mostrar o formulário de usuário.

Agora para o código habilitar a funcionalidade de formulário de usuário. O seguinte assume que sua caixa de texto para entrada de um valor é denominada TextBox1 e o resultado é denominada TextBox2.

Acessar o formulário de usuário em VBE e clique direito em qualquer lugar no corpo do formulário.

Selecione 'Exibir código'.

Cole o seguinte manipulador de eventos na área de edição à direita.



Private Sub TextBox1_Change()

Range("B2").Valor = Me.TextBox1.Value

Me.TextBox2.Value = Range("B3").Valor

End Sub

Feche o VBE e retornar à planilha. Pressione o botão de comando, ou ativar o atalho de teclado, chamar o userform.

Digite um valor em TextBox1 e TextBox2 retornará o valor de B3.

Naturalmente, há outras coisas que você pode fazer para melhorar o código. Por exemplo, você pode restringir o valor entrar em um valor numérico com um manipulador de eventos como este:



Private Sub TextBox1_Change()

Se não IsNumeric(Me.TextBox1) E Me.TextBox1.Value <> "", em seguida,

MsgBox "Entrada deve ser numérica", vbCritical, "Entrada inválida"

Me.textBox1.SetFocus

Exit Sub

End If

Range("B2").Valor = Me.TextBox1.Value

Me.TextBox2.Value = Range("B3").Valor

End Sub

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved