Notifications
Clear all

converter texto em numero

6 Posts
3 Usuários
0 Reactions
1,555 Visualizações
(@kayomaster)
Posts: 0
New Member
Topic starter
 

oi gente, eu abri dois topicos que eu marquei como resolvido do problema sendo que agor finalizando a planilha vi que a celula E3 que tem a formula =soma(B:B) não ésta somando os valores que a macro copia, pesquisando na internet verifiquei que é porque o numero esta armzenado como texto. eu corrijo na celula coverto pra numero aí ele soma, sendo que eu tenho que ficar fazendo isso manualmente com todos os numeros copiados porque acredito que o problema já vem do código da macro. mesmo que eu ja deixe a celula em branco formatado como numero na hora que eu aperto o botao ele fica com o mesmo erro. olhei na internet obre macros com esse tipo de problema encontrei um codigo mas nao consegui adaptar e não consegui ver se ele realmente iria servir, deu erro quando coloquei.

aqui esta o codigo que faz a rotina de copiar e colar os numeros:

b Copy_Consolidado()
Dim Linha As Long, sLinSheets As Long, sRow As Long
Dim iLinRotulo As Integer
Dim Col As String, sRotulo As String
Dim ShtCONSOLIDADO As Worksheet, sSht As Worksheet, wb As Workbook, sRG As Range, sRgColunas As Range
Dim sCodigo, x, i
Application.ScreenUpdating = False
Set wb = ThisWorkbook
    
Set ShtCONSOLIDADO = wb.Sheets("CONSOLIDADO")
    
Linha = ShtCONSOLIDADO.Range("A2").End(xlDown).Row
    
Set sRG = ShtCONSOLIDADO.Range("A4:" & "A" & Linha)
    
For Each x In sRG
    sRow = x.Row

 Set sRgColunas = ShtCONSOLIDADO.Range("C" & sRow & ", I" & sRow & ",M" & sRow & ", O" & sRow & ",AE" & sRow & ", AB" & sRow & ",R" & sRow & ", T" & sRow & ",V" & sRow)
                    
    For Each i In sRgColunas
        iLinRotulo = 2 'Linha do Cabeçalho
                    
        'Verificamos se o valor é nulo
        If i.Value <> "" And i.Value > 0 Or i.Value < 0 Then
            'Montamos a Letra das Colunas
            Col = Split(i.Address(1, 0), "$")(0)
                        
            'Linha dos Rotulos (Cabeçalho)
            sRotulo = Range(Col & iLinRotulo).Address(0, 0)
            'Capturamos o codigo
            sCodigo = x.Value
            sRow = i.Row
                        
            'Montamos o nome da aba como o sCodigo
            Set sSht = wb.Sheets(CStr(sCodigo))
            sLinSheets = sSht.Range("A2").End(xlDown).Row + 1
                        
            'Copiamos para as abas
            ShtCONSOLIDADO.Range(sRotulo).Copy
            sSht.Range("A" & sLinSheets).PasteSpecial (xlPasteValues)
            ShtCONSOLIDADO.Range(i.Address).Copy
            sSht.Range("B" & sLinSheets).PasteSpecial (xlPasteValues)
            
            'Na instrução abaixo estou supondo que a data que comentou seria da Coluna AA -DATA ENVIO
            'Se não for, é só ajustar
            ShtCONSOLIDADO.Range("AA" & sRow).Copy
            sSht.Range("C" & sLinSheets).PasteSpecial (xlPasteValues)
        End If
                     
    Next i
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

esse foi o codigo que vi que parece converter para numero ja com minha tentativa de adaptar.

'Ajuste o nome de sua aba e a coluna onde estão os valores, o Numero 1 (Cells(Rows.Count, 1) se refere a coluna A
LastRow = Sheets("clube").Cells(Rows.Count, 1).End(xlUp).Row

'Inicio  em A2
Set rngCelula = Range("C" & sRow & ", I" & sRow & ",M" & sRow & ", O" & sRow & ",AE" & sRow & ", AB" & sRow & ",R" & sRow & ", T" & sRow & ",V" & lastRow)

  With rngCelula
    .NumberFormat = "General"
    .FormulaLocal = rngCelula.Value
  End With
  
End Sub

segue o drive da planilha:
https://drive.google.com/open?id=18uK1p ... w6BCCAz4xe

obrigado gente!

 
Postado : 10/04/2018 10:42 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

kayomaster,

Boa tarde!

Sugiro anexar seu arquivo (ou um exemplo) aqui no fórum, compactado com .ZIP. Fica mais fácil rodar, depurar e achar o erro.

 
Postado : 10/04/2018 11:08 am
(@kayomaster)
Posts: 0
New Member
Topic starter
 

o pior que eu no consegui anexar, nem em zip cabe no máximo que é 50 kib.

mas o erro é tipo dessa imagem https://support.content.office.net/pt-b ... ecc2c3.jpg

a gente tem que ficar convertendo pra zip. o máximo que consegui foi disponibilizar o link pelo drive.
nele j da pr notar que por exemplo a aba 101 a célula E3 não esta somando os valores exatamente por causa desse erro.

Porque quando copia ele muda a célula. eu já botei tudo pra só números mas continua.

 
Postado : 10/04/2018 2:03 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Então, por gentileza, faça um pequeno exemplo (com o mesmo layout do arquivo original e com o mesmo código que você já possui e anexe o arquivo aqui.

 
Postado : 10/04/2018 5:51 pm
(@edsonbr)
Posts: 0
New Member
 

Olá, Kayomaster

O problema todo não está nem no seu código mas sim nas fórmulas das colunas C, I, M, O, R, T, V, AA e AE.

Vc explicitamente pede que números sejam retornados como texto em suas fórmulas e isso não costuma ser uma prática muito comum e na minha opinião só tende a trazer problemas.

Exemplo em suas fórmulas, em M4:

=SE(DIA(L4)=0;"0";SE(DIA(L4)<8;"-400";SE(DIA(L4)<16;"300";SE(DIA(L4)="-";"0";"-400"))))

e assim segue por todas as colunas em amarelo...

Se for por motivo de formatação (ex. vc não quer que datas que retornam valor zero apareçam como 00/01/1900 ou valores zero ou vazios como erros) há diversas outras formas de resolver na própria planilha, geralmente só com formatação de número.

Então remova as aspas em volta dos números e use a correta formatação para exibir os valores da plan Consolidação que o Excel entenderá corretamente que são números e não textos ao gerar os valores para popular as demais planilhas.

 
Postado : 10/04/2018 6:56 pm
(@kayomaster)
Posts: 0
New Member
Topic starter
 

ah era o isso mesmo olha. e eu pensando que era outra coisa relacionada a macro, porque sempre uso as aspas pra os números porque as vezes o excel não aceitava por o numero correto. e eu olhei na internet e não achei nada falando sobre esse detalhe.

Deu certo. valeu mesmo. obrigado!

 
Postado : 10/04/2018 9:24 pm