Notifications
Clear all

CÉLULAS DA LINHA ATIVA, RECEBENDO VALOR DAS VARIÁVEIS

13 Posts
3 Usuários
0 Reactions
2,145 Visualizações
(@renatoddd)
Posts: 0
New Member
Topic starter
 

Bom dia.

Me ajudem por favor.

Tenho 4 variáveis. Matrícula, nome, cargo, salário
Já com valores atribuídos.

O que eu preciso?

No momento q eu executar o código, preciso que os valores das variáveis, sejam atribuídos às células das colunas C, D, E e F da linha ativa.

Se eu estiver na linha 78, então, as células B78, C78, D78 e E78, receberão os valores.

O caso é que cada hora estarei em uma linha diferente.

Muito obrigado

 
Postado : 30/03/2017 7:17 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Renatoddd,

Bom dia!

Veja se é assim.

 
Postado : 30/03/2017 8:08 am
(@renatoddd)
Posts: 0
New Member
Topic starter
 

wAG, Obrigado por ajudar.

Na verdade não é isso pq não vou usar formulário.

Estarei navegando pela planilha, em algum momento, vou executar o código. Neste momento, estarei em uma linha qualquer.
As Células das colunas B, C, D e E, precisam receber os valores das variáveis.

Eu poderia escrever:
Range("B10").value = VARIAVEL1
ETC

mas, não sei em que linha vou estar.
Tem como resolver isso ?

Valeu mesmo.

 
Postado : 30/03/2017 8:35 am
(@romanha)
Posts: 0
New Member
 

Renato, Bom dia, boa tarde, boa noite.

O codigo que utilizo para este caso é o (ActiveCell) segue exemplo.

Na planilha que utilizei este comando busco a informação na celula (E2), e ela retorna para mim de acorco com o que esta descrito no print da tela em anexo. Espero que ajude.

Obs.: Estes comandos são para edição na minha planilha.

Private Sub cmb_localizar1_click()
 'comando para editar os dados do cliente
Worksheets("Documentos").Select
If cmb_localizar1.ListIndex + 2 = Range("I1") Then ' GUARDA A LINHA PARA O COMANDO
Range("I1") = ""
Exit Sub
End If
Worksheets("Documentos").Select
Range("E2").Select
Do Until ActiveCell = ""
If ActiveCell = cmb_localizar1 Then
   txt_projeto = ActiveCell.Offset(0, -4)
   txt_fase = ActiveCell.Offset(0, -3)
   txt_empresa = ActiveCell.Offset(0, -2)
   txt_titulo = ActiveCell.Offset(0, -1)
   txt_numero = ActiveCell
   txt_status = ActiveCell.Offset(0, 1)
   txt_gestor = ActiveCell.Offset(0, 2)
   txt_obs = ActiveCell.Offset(0, 3)
   txt_impla = ActiveCell.Offset(0, 5)
   txt_ano = ActiveCell.Offset(0, 6)
   txt_titulopro = ActiveCell.Offset(0, 7)
   Range("I1") = cmb_localizar1.ListIndex + 2
   Exit Sub
  End If
  
ActiveCell.Offset(1, 0).Select
Loop

End Sub
 
Postado : 30/03/2017 8:46 am
(@romanha)
Posts: 0
New Member
 

Segue a tela para entendimento

 
Postado : 30/03/2017 8:47 am
(@romanha)
Posts: 0
New Member
 

Estou enviando os comando para cadastro agora.

Private Sub bt_salvar_Click()
If txt_projeto = "" Then
MsgBox " Favor selecionar algum dados para editar"
Exit Sub
End If

If cmb_localizar1 = "" Then

If txt_projeto = "" Then
MsgBox "Informe O Projeto a ser cadastrado", vbCritical, "Campo obrigatorio!"
txt_projeto.SetFocus
Exit Sub
End If

'Gravar os dados do TEP
Totalregistro = Worksheets("Documentos").UsedRange.Rows.Count + 1
Cells(Totalregistro, 1) = txt_projeto
Cells(Totalregistro, 2) = txt_fase
Cells(Totalregistro, 3) = txt_empresa
Cells(Totalregistro, 4) = txt_titulo
Cells(Totalregistro, 5) = txt_numero
Cells(Totalregistro, 6) = txt_status
Cells(Totalregistro, 7) = txt_gestor
Cells(Totalregistro, 8) = txt_obs
Cells(Totalregistro, 10) = txt_impla
Cells(Totalregistro, 11) = txt_ano
Cells(Totalregistro, 12) = txt_titulopro
MsgBox "DC CADASTRADO COM SUCESSO!!"
'limpar caixa de cadastro

cmb_localizar1 = ""
txt_fase = ""
txt_empresa = ""
txt_titulo = ""
txt_numero = ""
txt_status = ""
txt_gestor = ""
txt_projeto = ""
txt_obs = ""
txt_impla = ""
txt_ano = ""
txt_titulopro = ""
UserForm_Initialize

 
Postado : 30/03/2017 8:51 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Renatoddd,

Para mim ainda ficou meio confuso. Poste seu arquivo aqui no fórum e explique na própria planilha como é que você gostaria que ocorresse.

 
Postado : 30/03/2017 8:54 am
(@renatoddd)
Posts: 0
New Member
Topic starter
 

Opa, valeu por ajudar.
Acredito que isso já está num nível acima do meu conhecimento.
Pelo que entendi, os registros cadastrados no form, são salvos na primeira linha em branco.

No meu caso, não terei um formulário.
Estarei aa sheets1. Quando eu executar o código, aconteceria o seguinte:
1 - Seleciona Sheets1 (já concluí essa parte)
2 - As variáveis (MATRICULA, NOME, CARGO e SALARIO), receberão os valores de A1, B1, C1 e D1. (já concluí essa parte)
3 - Seleciona Sheets2 (já concluí essa parte)
4 - Procura na colona A, a linha que contém a matrícula igual ao valor que está na variável. (já concluí essa parte)
5 - Salva na coluna B, o valor da variável NOME, na coluna C, o valor da variável CARGO, na coluna D, o valor da variável Salário. (isso eu não consegui fazer)

Na verdade são muitos outros dados. Deixei só 4 para facilitar o exemplo.
Se eu entender o código, vou conseguir aplicar em tudo.
Não sei se consegui me expressar de forma clara. Veja por favor se consegue me ajudar nisso. Travei aqui e não consigo evoluir.

Queria algo assim.... Coluna B da linha ativa = NOME, coluna C da linha ativa = CARGO, coluna D da linha ativa = SALARIO.
Digo, queria saber o código VBA que faz isso.
Muito obrigado.

 
Postado : 30/03/2017 9:11 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Entendi...

O problema é que estamos falando de coisa de modo escrito e fica difícil avaliar do cada um está falando...

Você diz:

Estarei aa sheets1. Quando eu executar o código

- Que código? É VBA? Como você está fazendo isso?

As variáveis (MATRICULA, NOME, CARGO e SALARIO), receberão os valores de A1, B1, C1 e D1. (já concluí essa parte)

- Como é isso? Onde essas variáveis foram criadas? É no Ambiente do VBA? Qual o tipo de cada variável? Qual é o comando que armazena os valores nessas variáveis?

Creio que o que você está querendo é muito fácil de fazer... todavia, o problema aqui é a comunicação. Quando se trata de comunicação escrita fica complicado.

Por isso, sugeri, desde o começo, que você postasse sua planilha aqui mesmo no fórum. Se não puder colocar os dados originais (por serem confidenciais), coloque uma planilha exemplo com dados fictícios, porém com o layout exatamente igual ao do seu arquivo original.

 
Postado : 30/03/2017 9:35 am
(@romanha)
Posts: 0
New Member
 

Posta a planilha cara que a gente olha e ver como funciona

 
Postado : 30/03/2017 9:55 am
(@renatoddd)
Posts: 0
New Member
Topic starter
 

Wag, infelizmente não consigo postar pq o servidor aqui do trabalho bloqueia.

Preciso do cógigo VBA que faça o seguinte:

Celula da coluna B da linha ativa seja igual a 1000

Por exemplo.
Range("B50").value = 1000

Só que não posso dizer B50 pq a linha da célula ativa vai variar.

Consegue informar qual seria esse código ?

Sei lá, imagino algo tipo..... Range("B",activerow).value = 1000

 
Postado : 30/03/2017 11:23 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 
ActiveCell.Value = 1000
 
Postado : 31/03/2017 6:22 am
(@renatoddd)
Posts: 0
New Member
Topic starter
 

consegui resolver.

era o seguinte

ange("B" & ActiveCell.Row).Value = NOME

Sendo NOME, o nome da variável.

agradeço a todos os que ajudaram.
valeu

 
Postado : 13/04/2017 1:02 pm