Converter números armazenados como texto em números

Anônima
2016-12-18T13:40:36+00:00

Numa planilha Excel, ao extrair parte de uma célula (H64p/ ex. e que está formatada como texto) contendo o valor IPCA + 6,21% através do comando =DIREITA(H64;5) em outra célula (Z64 p/ ex., sendo que toda a coluna Z está formatada como % com duas casas decimais), o resultado 6,21% aparece corretamente no formato % com duas casas decimais.

Porém, ao usar a macro abaixo na mesma célula Z64, o resultado aparece no formato texto.

ActiveCell.Offset(0, 1).Select

    ActiveCell.FormulaR1C1 = "=RIGHT(RC[-18],5)"

        Selection.Copy

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=False

        Application.CutCopyMode = False

Como fazer para que nesta macro o resultado retorne no formato %.?

Obs.: Os comandos feitos através das últimas 4 linhas (Selection.Copy***... até ...***Application.CutCopyMode = False) são para que nessa célula permaneça apenas o resultado, senão permanecerá a sua fórmula.

Grato.

PS. Na macro acima, estava na célula Y64 (Por isso o comando ActiveCell.Offset(0, 1 ))

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2016-12-19T11:54:29+00:00

@Ricardo_Di,

A dúvida do inquiridor deve ser respondida aqui porque se encaixa ao assunto deste fórum. Se for para recomendar o fórum de VBA, passe o link correto, pois o que você informou está errado: https://social.msdn.microsoft.com/Forums/pt-BR/newthread?category=officesharepointpt&forum=vbapt

@WaltSem,

Tente usar o código abaixo:

    ActiveCell.Offset(0, 1).Select

    ActiveCell.FormulaR1C1 = "=RIGHT(RC[-18],5)*1"

    Selection.Copy 

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=False

        Application.CutCopyMode = False

Multipliquei o resultado da fórmula por 1 para forçar a conversão de texto para número.

Esta resposta foi útil?

0 comentários Sem comentários

2 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2016-12-20T09:08:47+00:00

    Olá Felipe.

         Eu já havia solucionado o caso através do acréscimo na última linha da instrução ActiveCell.TextToColumns, porém passei a utilizar sua sugestão que acho ter resolvido de forma mais simples e eficiente.

    Grato.

    WaltSem.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2016-12-18T17:32:21+00:00

    Olá, WaltSem, tudo bem?     

    Obrigado por entrar em contato com à Comunidade Microsoft! 

    Sugiro que poste a sua dúvida no link abaixo que vai direcioná-lo ao MSDN que é um fórum especialmente destinados para desenvolvedores e profissionais em TI.

    Se a resposta ajudou de alguma forma, por favor, marque como resposta.

    Espero ter ajudado, até mais!

    Esta resposta foi útil?

    0 comentários Sem comentários