Página 1 de 1
INSERIR UM VALOR NA CÉLULA AO LADO
Enviado: 01 Jul 2020 às 15:42
por rcsj
Olá, meu conhecimento em VBA é praticamente zero e certa vez o precisei de um cogido para inserir uma data não volátil na célula do lado e os amigos do forum me ajudou bastante com o código abaixo, porém dessa vez estou precisando que na célula seguinte (que seria a Target.Offset(0, 2).Value) recebesse um valor de determinada célula da linha em questão, eu até consegui porém ela tá buscando sempre o valor da primeira linha de minha tabela, alguma dica?
Private Sub Worksheet_Change(ByVal Target As Range)
' Macro p/ inserir data atual não volátil em tabela nomeada
' 5 de setembro de 2016
On Error GoTo TrataErro
If Not Intersect(Target, Range("Tabela2[SITUAÇÃO]")) Is Nothing Then
If Target.Value = "RECEBIDO" Then
Target.Offset(0, 1).Value = Date
Else
Target.Offset(0, 1).Value = ""
Exit Sub
End If
End If
TrataErro:
' Sai da sub-rotina
Exit Sub
Re: INSERIR UM VALOR NA CÉLULA AO LADO
Enviado: 01 Jul 2020 às 19:32
por babdallas
Não entendi muito bem. Veja se ajuda.
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo TrataErro
If Not Intersect(Target, Range("Tabela2[SITUAÇÃO]")) Is Nothing Then
If Target.Value = "RECEBIDO" Then
'Ajuste o Offset(, 4) para a célula que deseja
Target.Offset(, 2).Value = Target.Offset(, 4).Value
Else
Target.Offset(, 2).Value = ""
Exit Sub
End If
End If
TrataErro:
' Sai da sub-rotina
Exit Sub
Se não for isso, dê um exemplo prático explicando o resultado final.
Re: INSERIR UM VALOR NA CÉLULA AO LADO
Enviado: 02 Jul 2020 às 10:57
por rcsj
Olá babdallas,
em anexo está uma planilha modelo (quase como eu preciso), porém meu problema está sendo o seguinte, se na coluna SITUAÇÃO o valor escolhido for cartão 1x como mencionei no exemplo na coluna valor2 teria que aparecer o valor da primeira coluna correspondente a linha dela - como na planilha modelo está pegando sempre o valor da primeira linha
eu queria que aparecesse ( 100,00 - 150,00 - 257,00...)
a linha de código que tá é Target.Offset(0, 2).Value = Range("Tabela1[valor]").Value
Re: INSERIR UM VALOR NA CÉLULA AO LADO
Enviado: 02 Jul 2020 às 11:30
por babdallas
Veja se é isso
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo TrataErro
If Not Intersect(Target, Range("Tabela1[SITUAÇÃO]")) Is Nothing Then
If Target.Value = "DINHEIRO" Then
Target.Offset(, 1).Value = Date
Else
Target.Offset(, 1).Value = ""
End If
If Target.Value = "CARTÃO 1X" Then
Target.Offset(, 3).Value = Date + 30
Else
Target.Offset(, 3).Value = ""
End If
If Target.Value = "CARTÃO 1X" Then
Target.Offset(, 2).Value = Target.Offset(, -1).Value
Else
Target.Offset(, 2).Value = ""
End If
Exit Sub
End If
TrataErro:
End Sub
Re: INSERIR UM VALOR NA CÉLULA AO LADO
Enviado: 02 Jul 2020 às 17:41
por rcsj
Deu certinho babdallas
Obrigado!