Notifications
Clear all

macro completar com "0" a esquerda do numero

6 Posts
3 Usuários
0 Reactions
2,112 Visualizações
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa tarde a todoss...
estou criando um macro onde exporto as informaçoes de uma planilha para um arquivo texto para ser importando em outro programa depois, porem de acordo com o layout preciso que um valor que busco na planilha tenha 15 caracteres e se nao tiver complete com "0" a esqueda. ex. de parte do macro que estou utilizando.

Sub GeraTxt()

'Identifica o caminho onde está e será salvo exemplo: C:Desktop
Caminho = ThisWorkbook.Path & Application.PathSeparator
'Determina o nome do arquivo a ser salvo
arquivo = "Exportar_Excel_pTxt.txt"
'"abre" o arquivo txt para gravação dos dados
Open Caminho & arquivo For Output As #1

'Posiciona-se na planilha chamada "Export"
Worksheets("GeraSEFIP").Activate
Range("a1").Select
'Linha de inicio dos dados ( a 1 são os cabecalhos)
linha = 2
'Inicio do loop, executa ate´linha vazia.
Cpo1 = Cells(1, 1)
Cpo2 = Cells(4, 2)

'Grava o valor em dados no arquivo txt
Print #1, Dados

'fecha o arquivo txt
Close #1

End Sub

ou seja ele deve buscar o valor da celula A1 que esta ex.: 250,00 e ao extrair a informação fique assim 000000000025000
sao 15 zeros e o numero extraido inclusive apos a virgula, porem sem a virgula... desafiador né rsrs..

Agradeço desde já.

Obrigada.

 
Postado : 15/05/2012 10:12 am
(@m_araujo)
Posts: 159
Estimable Member
 

Boa tarde,
ericaffj poderia posta o arquivo

 
Postado : 15/05/2012 1:45 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa tarde
ola amigo, estou postando o arquivo, ele esta exportando o seguinte .txt
NOMEVALORERICA15,23PEDRO1000,5

preciso que o valor que com 15 casas no total no caso devera preencher com "0" a esquerda, e tambem quando for tipo 1000,50 (veja que no exportado esse ulltimo 0 do ,50 nao sai, e nao pode SAIR A VIRGULA TAMBEM),
deveria ficar assim: NOMEVALORERICA000000000001523PEDRO000000000100050

caso possa ajudar fico agradecida...

 
Postado : 15/05/2012 2:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:

        Cpo1 = Cells(1, 1)
        Cpo2 = Application.WorksheetFunction.Rept(0, 15 - Len(Cells(1, 2))) & _
               Application.WorksheetFunction.Substitute(Cells(1, 2), ",", "")
        Cpo3 = Cells(2, 1)
        Cpo4 = Application.WorksheetFunction.Rept(0, 15 - Len(Cells(2, 2))) & _
               Application.WorksheetFunction.Substitute(Cells(2, 2), ",", "")
        Cpo5 = Cells(3, 1)
        Cpo6 = Application.WorksheetFunction.Rept(0, 15 - Len(Cells(3, 2))) & _
               Application.WorksheetFunction.Substitute(Cells(3, 2), ",", "")
        Cpo7 = Cells(4, 1)
        Cpo8 = Application.WorksheetFunction.Rept(0, 15 - Len(Cells(4, 2))) & _
               Application.WorksheetFunction.Substitute(Cells(4, 2), ",", "")
        
        Dados = Cpo1 & Cpo2 & Cpo3 & Cpo4 & Cpo5 & Cpo6
        
    Print #1, Dados
 
Postado : 15/05/2012 2:56 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa tarde
Reinaldo, mas quando digito exmplo 100,00 na planilha ele nao exporta com os zeros de centavos entende...
precisaria que exportasse nesse caso 10 zeros e depois 10000 sem a virgula, ficando assim 000000000010000 ...
será possivel?

desde ja fico agradecida...

 
Postado : 16/05/2012 12:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Isso porque o visual 100,00 é somente uma "mascara" de visualização.O valor na celula é somente :100
Entao altere as maneira de complementar para :
Application.WorksheetFunction.Rept(0, 15 - Len(Cells(1, 2))) & _
Application.WorksheetFunction.Substitute(Format(Cells(1, 2), "##.00"), ",", "")

 
Postado : 16/05/2012 5:43 pm