Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por lucasfrrocha
#10714
Boa tarde,

estou com uma dificuldade em automatizar um processo simples , que seria pegar um intervalo de valores ,e cola-los como a soma deles , só que ao invés de usar =soma() , eu queria que na célula mostrasse por exemplo =Valor1+Valor2+Valor3... para assim quando clicar na célula , conseguir ver os valores das componentes da soma. Alguém sabe o melhor jeito de fazer isto ?

Obrigado,

Lucas.
Avatar do usuário
Por Parkeless
Posts Avatar
#10719
Olá Lucas!

Consegue postar uma planilha exemplificando o que você precisa?
Avatar do usuário
Por Parkeless
Posts Avatar
#10723
Tenta colocar um apóstrofo antes da fórmula.

Exemplo: '=A1+A2+A3...
Por lucasfrrocha
#10724
Acho que me expressei mal , o total pode aparecer normal quando a celula não esta selecionada . mas quando clicar para editar/ver , ela fica aparendo como "=Valor 1 + valor 2 .."
Avatar do usuário
Por Parkeless
Posts Avatar
#10726
Lucas,

Fiz uma macro, mas cuidado; ela calcula uma soma simples entre valores, o que quer dizer que ela não cria vínculo nenhum com outras células. Ou seja, um valor alterado posteriormente não irá atualizar a fórmula.

Cole o código abaixo em um módulo (Alt + F11 > Inserir > Módulo), e execute a macro.
Código: Selecionar todos
Sub Soma_Um()

Dim Intervalo As Range

Dim Resultado As Range

Set Intervalo = Application.InputBox("Selecione as células a serem somadas.", "Seleção", Type:=8)
Set Intervalo = Intersect(ActiveSheet.UsedRange, Intervalo)
Set Resultado = Application.InputBox("Selecione a célula que conterá o resultado.", "Seleção", Type:=8)

If Intervalo.Columns.Count <> 1 Then
    MsgBox "Erro: selecione apenas uma coluna.", vbCritical
    Exit Sub
End If
If Resultado.Count <> 1 Then
    MsgBox "Erro: selecione apenas uma célula para o resultado.", vbCritical
    Exit Sub
End If

Dim cell As Range
Dim Texto As String
Dim i As Long


For i = 1 To Intervalo.Count
    If IsNumeric(Intervalo.Cells(i, 1)) Then
        If i = 1 Then
    
            Texto = Intervalo.Cells(i, 1)
        Else
            
            Texto = Texto & "+" & Intervalo.Cells(i, 1)
        End If
    End If
Next i

Resultado.FormulaR1C1 = "=" & Texto

End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord