Ir ao conteúdo
  • Cadastre-se

Excel Montar arquivo em formato separado por ponto e virgula


Ir à solução Resolvido por Midori,

Posts recomendados

Possuo uma base com empresas que realizam serviços, tudo esta em uma única coluna, porém necessito inserir os serviços na frente de cada empresa prestadora que esta representada por uma código numérico, separado por ponto e virgula dentro de uma célula.

prestadores_skill.xlsx

Link para o comentário
Compartilhar em outros sites

  • Solução

@williams.matos Veja se assim resolve, o arquivo será salvo no mesmo diretório da planilha,

 

Sub CriaArquivoCSV()
    Dim Tabela      As ListObject
    Dim Registro    As Range
    Dim StrLinha    As String
    Dim ID          As String
    Dim ArquivoCSV  As Integer
    
    Set Tabela = ThisWorkbook.Sheets("Planilha1").[Tabela2].ListObject
    ArquivoCSV = FreeFile
    Open ThisWorkbook.Path & "\ArquivoTeste.csv" For Append As ArquivoCSV

    If Not Tabela.DataBodyRange Is Nothing Then
        ID = Tabela.DataBodyRange.Rows.Cells(1, 1).Value
        For Each Registro In Tabela.DataBodyRange.Rows
            If ID <> Registro.Columns(1).Value Then
                Print #ArquivoCSV, ID & StrLinha
                StrLinha = ""
            End If
            StrLinha = StrLinha & ";" & Registro.Columns(4).Value
            ID = Registro.Columns(1).Value
        Next Registro
    End If

    Close ArquivoCSV
End Sub

 

Link para o comentário
Compartilhar em outros sites

Em 31/10/2023 às 11:13, Midori disse:

@williams.matos Veja se assim resolve, o arquivo será salvo no mesmo diretório da planilha,

 

Sub CriaArquivoCSV()
    Dim Tabela      As ListObject
    Dim Registro    As Range
    Dim StrLinha    As String
    Dim ID          As String
    Dim ArquivoCSV  As Integer
    
    Set Tabela = ThisWorkbook.Sheets("Planilha1").[Tabela2].ListObject
    ArquivoCSV = FreeFile
    Open ThisWorkbook.Path & "\ArquivoTeste.csv" For Append As ArquivoCSV

    If Not Tabela.DataBodyRange Is Nothing Then
        ID = Tabela.DataBodyRange.Rows.Cells(1, 1).Value
        For Each Registro In Tabela.DataBodyRange.Rows
            If ID <> Registro.Columns(1).Value Then
                Print #ArquivoCSV, ID & StrLinha
                StrLinha = ""
            End If
            StrLinha = StrLinha & ";" & Registro.Columns(4).Value
            ID = Registro.Columns(1).Value
        Next Registro
    End If

    Close ArquivoCSV
End Sub

 

Como utilizo? como comentei antes eu não conheço MACRO, eu até inseri esse código que me enviou la onde cria Macro no excel, mas não sei como fazer executar e trazer o resultado, desculpe insistir mas conseguiria usar meu arquivo inserindo essa macro nele? pois ai entenderia melhor, nunca mexi em Macro nem VBA.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Forma alternativa de resolver este caso utilizando o Power Query, resultado final na aba "Tabela2".
No vídeo abaixo (em inglês) é possível observar como foi produzida a solução.
Se não me falha a memória tb é possível exportar direto do porque p/ arquivo '.csv'.
 

 

prestadores_skill com PQ por DJ.xlsx

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!