Página 1 de 1

Macro Colar valores

Enviado: 17 Mai 2016 às 12:24
por lucasfrrocha
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.

Macro Colar valores

Enviado: 17 Mai 2016 às 13:18
por Parkeless
Olá Lucas!

Consegue postar uma planilha exemplificando o que você precisa?

Re: Macro Colar valores

Enviado: 17 Mai 2016 às 13:45
por lucasfrrocha
Boa tarde Parkeless,

Não sei se é necessário a planilha , sendo que o problema em si é bem simples, tirei uma print , não sei se ajuda...
caso precise eu mando a planilha.

https://uploaddeimagens.com.br/images/0 ... 1463502558

a parte chata é que a =soma() não me serve por que necessito de cada valor escrito na célula como feito na print.


não sei se ajudou..

Macro Colar valores

Enviado: 17 Mai 2016 às 13:48
por Parkeless
Tenta colocar um apóstrofo antes da fórmula.

Exemplo: '=A1+A2+A3...

Macro Colar valores

Enviado: 17 Mai 2016 às 13:57
por lucasfrrocha
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 .."

Macro Colar valores

Enviado: 17 Mai 2016 às 14:25
por Parkeless
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

Macro Colar valores

Enviado: 18 Mai 2016 às 07:57
por lucasfrrocha
Funcionou perfeitamente Parkeless, muito obrigado.