Ir para conteúdo
Fórum Script Brasil
  • 0

Zero a Esquerda - CPF -.CSV


Sergio Hatus

Pergunta

Boa Tarde, Pessoal.

 

Estou precisando exportar uns dados de uma planilha excel para .csv, porém não estou conseguindo fazer com que os CPF que começam com zero, fiquem com o caractere zero na planilha csv. 
Já tentei colocar entre "" e não da certo, porque geralmente as "" vão para a planilha e fazem com que o CPF fique incorreto.

image.png.c0c86c3934a60b27b820a2e21adab456.png

Sub ExportarParaCSV()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim fileName As String
    Dim fileNum As Integer
    Dim linhaCSV As String

    ' Definir a planilha que será usada
    Set ws = ThisWorkbook.Sheets("CPF") ' Mude o nome conforme necessário

    ' Encontrar a última linha com dados na coluna A
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Definir o nome do arquivo CSV
    fileName = ThisWorkbook.Path & "\Exportacao_CPDF.csv"

    ' Abrir o arquivo CSV para gravação
    fileNum = FreeFile
    Open fileName For Output As fileNum

    ' Loop por todas as linhas da coluna A e B
    For i = 1 To lastRow
        ' Formatar a célula da coluna A como texto (para preservar o CPF corretamente)
        ws.Cells(i, 1).NumberFormat = "@"

        ' Montar a linha para o CSV, com a coluna A entre aspas duplas para garantir o formato texto
        linhaCSV = """" & ws.Cells(i, 1).Text & """;" & ws.Cells(i, 2).Text

        ' Gravar a linha no arquivo CSV
        Print #fileNum, linhaCSV
    Next i

    ' Fechar o arquivo CSV
    Close fileNum

    MsgBox "Exportação concluída! Arquivo salvo como: " & fileName

End Sub

 

SE alguém conseguir me ajudar sou grato. 

 

Atenciosamente.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite.
Eu pensei em uma função que faz a verificação e formatação do CPF:
 

Function FormatarCPF(ByVal cpf As String) As String
    ' Remove qualquer caractere que não seja número
    cpf = Application.WorksheetFunction.Substitute(cpf, ".", "")
    cpf = Application.WorksheetFunction.Substitute(cpf, "-", "")
    cpf = Application.WorksheetFunction.Trim(cpf)

    ' Completa com zeros à esquerda caso o CPF tenha menos de 11 dígitos
    If Len(cpf) < 11 Then
        cpf = String(11 - Len(cpf), "0") & cpf
    End If

    ' Verifica se o CPF tem 11 dígitos
    If Len(cpf) = 11 Then
        ' Formata o CPF no padrão XXX.XXX.XXX-XX
        FormatarCPF = Left(cpf, 3) & "." & Mid(cpf, 4, 3) & "." & Mid(cpf, 7, 3) & "-" & Right(cpf, 2)
    Else
        ' Se o CPF não tiver 11 dígitos, retorna o CPF original sem formatar
        FormatarCPF = cpf
    End If
End Function

Ai faz a alterção no código para receber essa função e conseguir formatar:
 

Sub ExportarParaCSV()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim fileName As String
    Dim fileNum As Integer
    Dim linhaCSV As String
    Dim cpfFormatado As String

    ' Definir a planilha que será usada
    Set ws = ThisWorkbook.Sheets("CPF") ' Mude o nome conforme necessário

    ' Encontrar a última linha com dados na coluna A
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Definir o nome do arquivo CSV
    fileName = ThisWorkbook.Path & "\Exportacao_CPF.csv"

    ' Abrir o arquivo CSV para gravação
    fileNum = FreeFile
    Open fileName For Output As fileNum

    ' Loop por todas as linhas da coluna A e B
    For i = 1 To lastRow
        ' Verificar se a célula contém CPF e garantir que seja tratado como texto
        If Len(ws.Cells(i, 1).Text) > 0 Then
            ' Formatar CPF utilizando a função personalizada
            cpfFormatado = FormatarCPF(ws.Cells(i, 1).Text)

            ' Montar a linha com CPF formatado
            linhaCSV = cpfFormatado & ";" & ws.Cells(i, 2).Text
        Else
            ' Se não houver CPF, apenas escrever a segunda coluna
            linhaCSV = ";" & ws.Cells(i, 2).Text
        End If

        ' Gravar a linha no arquivo CSV
        Print #fileNum, linhaCSV
    Next i

    ' Fechar o arquivo CSV
    Close fileNum

    MsgBox "Exportação concluída! Arquivo salvo como: " & fileName

End Sub

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...