Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
fcll

Excel Alterar o valor da Variável conforme outra Variável

Recommended Posts

Boa tarde, pessoal

Estou com um pequeno desafio no meu código, gostaria de saber se alguém pode me ajudar.
Tenho uma situação em que no Formulário 01 são selecionados diversos itens para um lançamento de dados.
Esses itens são armazenados em variáveis (PROD1, PROD2, PROD3)

A dificuldade que tenho é saber se consigo atualizar o nome da variável (e seu resultado) conforme outra variável.
No exemplo a seguir, o modelo que tentei e outras diversas variações não funcionaram.
Seria fácil resolver com um IF, mas no meu projeto o número de vezes em que a variável vai mudar de nome é imprevisível e alto e não ficaria interessante nem possível fazer tantos IFs.

Segue o código base:

Option Explicit
Public PROD1, PROD2, PROD3 as String
Public CICLO as Integer

 

FORM 01

Private Sub Carregar_Dados()

If ckprod1.value = true and PROD1.value <> Empty then
MsgBox "Selecione o Produto1!"
Elseif ckprod2.value = true and PROD2.value <> Empty then
MsgBox "Selecione o Produto2!"
Elseif ckprod3.value = true and PROD3.value <> Empty then
MsgBox "Selecione o Produto3!"
End if

PROD1 = txtprod1.value
PROD2 = txtprod2.value
PROD3 = txtprod3.value

If PROD1.value <> Empty then CICLO = 1
Elseif PROD2.value <> Empty then CICLO = 2
Elseif PROD3.value <> Empty then CICLO = 3
End if

End Sub

FORM 02

Private Sub Carregar_Dados()

Dim L As Integer
Dim LINHA As Long

'Procurar a primeira célula vazia
Worksheets("Lançamentos").Range("A1").Select
Do If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

LINHA = ActiveCell.Row
    
'Atribui um valor à variável
For L = 1 To CICLO
    
    PRODUTO = "PROD" & L

    'Carregar os dados digitados nas caixas de texto para a planilha
    ActiveCell.Offset((LINHA + L), 0).Value = VBA.Format(txtdata.Value, "mm/dd/yyyy")
    ActiveCell.Offset((LINHA + L), 1).Value = txtnumerodanota.Value
    ActiveCell.Offset((LINHA + L), 2).Value = PRODUTO
    
Next L

End Sub

 

Editado por DiF

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu vejo é que você está atribuindo um valor às variáveis apenas 1x no programa:

 

PROD1 = txtprod1.value

PROD2 = txtprod2.value

PROD3 = txtprod3.value

 

Por quê você não trabalha direto com o txtprod_.value, teria algum problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Form 01

As caixa de texto tem uma quantidade fixa de caixa/itens ou você inserir a quantidade de caixas de texto de forma dinâmica?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @T1000_2015 Não entendi bem sua pergunta. O "_" tem alguma função nesse caso?

     

    @Philipp Moreira As caixa tem uma quantidade fixa de itens, mas são muitas, na casa de 50 itens.

     

    Pessoal, estou enviando um arquivo modelo em anexo para explicar melhor o que desejo fazer.

    Basicamente, relembro que daria para usar um IF, mas como são muitos itens ficaria muito extenso, até mesmo porque, no arquivo original muitas outras informações são lançadas de forma parecida... ou seja, inviável.

     

    Agradeço as tentativas até agora e espero que o arquivo seja mais esclarecedor.

     

    Obrigado!

    Exemplo Lançamento.rar

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Fcll,  boa noite!

     

    Desculpe a demora,  mas veja se o anexo te ajuda a continuar!

     

    Toda vez que inserir um campo para o lançamento de produtos, veja o padrão que deve ser adotado para o  preenchimento da propriedade Tag do controle, tanto do campo de produto como do de quantidade.

    Creio que da forma que fiz, ficou dinamico e suportara a sua necessidade.

     

    De uma analisada no código e caso tenha dúvida de algo, da um toque!

    Exemplo Lançamento.zip

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Philipp Moreira,

     

    Amigo, que solução genial!!

    Eu demorei um pouco para entender todos os aspectos, mas agora está tudo claro para mim.

    Fico muito grato pelo apoio, esse assunto foi um grande desafio na minha ferramenta e estou feliz de ter contado com seu total apoio para superá-lo.

     

    Espero pode ajudar no futuro!

     

    Grande abraço,

     

    Em 29/10/2017 às 00:33, Philipp Moreira disse:

    Fcll,  boa noite!

     

    Desculpe a demora,  mas veja se o anexo te ajuda a continuar!

     

    Toda vez que inserir um campo para o lançamento de produtos, veja o padrão que deve ser adotado para o  preenchimento da propriedade Tag do controle, tanto do campo de produto como do de quantidade.

    Creio que da forma que fiz, ficou dinamico e suportara a sua necessidade.

     

    De uma analisada no código e caso tenha dúvida de algo, da um toque!

    Exemplo Lançamento.zip

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×