Notifications
Clear all

Transformar números negativos existente em positivo.

4 Posts
2 Usuários
1 Reactions
1,831 Visualizações
(@adrianobardini)
Posts: 2
New Member
Topic starter
 

Boa noite, gostaria de uma ajuda com uma vba...
atualmente eu criei uma vba que importa alguns números para uma outra planilha, na qual são números negativos (-1), sendo assim, gostaria de saber alguma macro que transforme todos os numeros existentes na planilha selecionada em positivo.

 
Postado : 18/03/2021 5:48 pm
Tags do Tópico
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vindo ao Planilhando, @adrianobardini

No VBA, assim como no Excel, vc pode usar a função ABS (função absoluto ou também conhecida por módulo). Digamos que o intervalo de células contendo só números (tanto faz se positivos, negativos ou zeros) que vc queira converter a positivos esteja no intervalo A1:A100 da planilha ativa, vc poderia usar, por exemplo:

Sub PositivaNums()
  Dim rg As Range
  For Each rg In ActiveSheet.Range("A1:A100")
    rg.Value = Abs(rg.Value)
  Next rg
End Sub

 
Postado : 19/03/2021 8:39 am
(@adrianobardini)
Posts: 2
New Member
Topic starter
 

@edsonbr

Obrigado pelo suporte, este processo me ajudou bastante já... 
Agora me tira outra duvida  desta sua macro, tem como colocar alguma linha de código que ele identifique que tem de deixar o numero positivo até aonde existir linhas preenchida?

pq se colocar como esta ai "A1:A100" vai preencher todas as linhas sem valor com o numero zero, tem algum comando que só altera as linhas existente?

 
Postado : 19/03/2021 3:23 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

O código abaixo processa só valores numéricos da coluna A inteira:

Sub PositivaNums()
  Dim A As Range, cél As Range, rg As Range
  On Error GoTo Sair
  Set rg = Range("A:A").SpecialCells(xlCellTypeConstants, xlNumbers)
  For Each A In rg.Areas
    For Each cél In A.Cells
      cél.Value = Abs(cél.Value)
    Next cél
  Next A
Sair:
End Sub

 
Postado : 19/03/2021 5:00 pm
Joel reacted