- 16 Mai 2022 às 15:26
#70820
Pessoal, boa tarde.
Estou montando uma pequena planilha de controle de gastos no Excel, utilizando código VBA. Ela contém uma tabela (figura abaixo), com 6 colunas. Eu gostaria de converter os valores (Coluna VALOR) de positivo para negativo, mas somente das categorias Despesa e Invest (Coluna CATEGORIA).
ANO MÊS REF CATEGORIA DESCRIÇÃO VALOR COMENTÁRIO
2017 Janeiro Receita Proventos 2.000,00 Fatimalhas
2017 Fevereiro Despesa Alimentação 250,00
2018 Janeiro Invest LCA LCI 600,00
2018 Fevereiro Despesa Concess 102,00 CEMIG
Eu descobri, nesse forúm mesmo, um código que me atenderia. Porém ele apresentou dois problemas:
1º) Ele converte os valores de todas as linhas, porém, quando rodo ele novamente, ocorre o contrário, ele reconverte de negativo para positivo, ou seja, volta à zero;
2º) Eu preciso criar uma condição para que somente os valores das categorias Despesa e Invest (Coluna CATEGORIA), sejam convertidos.
Segue o código.
Estou montando uma pequena planilha de controle de gastos no Excel, utilizando código VBA. Ela contém uma tabela (figura abaixo), com 6 colunas. Eu gostaria de converter os valores (Coluna VALOR) de positivo para negativo, mas somente das categorias Despesa e Invest (Coluna CATEGORIA).
ANO MÊS REF CATEGORIA DESCRIÇÃO VALOR COMENTÁRIO
2017 Janeiro Receita Proventos 2.000,00 Fatimalhas
2017 Fevereiro Despesa Alimentação 250,00
2018 Janeiro Invest LCA LCI 600,00
2018 Fevereiro Despesa Concess 102,00 CEMIG
Eu descobri, nesse forúm mesmo, um código que me atenderia. Porém ele apresentou dois problemas:
1º) Ele converte os valores de todas as linhas, porém, quando rodo ele novamente, ocorre o contrário, ele reconverte de negativo para positivo, ou seja, volta à zero;
2º) Eu preciso criar uma condição para que somente os valores das categorias Despesa e Invest (Coluna CATEGORIA), sejam convertidos.
Segue o código.
Código: Selecionar todos
Obrigado.Private Sub NegativosPositivo()
Dim ce As Range
For Each ce In Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row)
ce.Value = -ce.Value
Next ce
End Sub