Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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

 

Link para o comentário
Compartilhar em outros sites

@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

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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...