Ir ao conteúdo

Posts recomendados

Postado

Como faço pra copiar os dados da linha inteira quando tiver dados somente na coluna A excluindo a coluna B no resultado?

 

Exemplo:
image.png.bd620203e02b8578996e03d54f60e904.png

 

Resultado:

image.png.d486b7a01c2567e4c54748054dea94ae.png

 

Postado

@OreiaG Funcionou e agora preciso que leia todos os .csv que tem em c:\csv e cole o resultado de cada csv numa unica planilha. 
Cheguei a este VBA mas não sei como levar pra outra planilha. Este codigo so faz no csv

Sub Atualizar()
    base
End Sub

Private Function base()

Dim Caminho, pastaDeTrabalho, pastaDeTrabalhoAtiva, formulas, linhas As String
Dim linhaDeInicio As Long
Dim arquivos() As Variant
pastaDeTrabalhoAtiva = ActiveWorkbook.Name
Caminho = "C:\csv\"
arquivos = listfiles(Caminho)
linhaDeInicio = 1
    'verificação de arquivos
    For Each arquivo In arquivos
        'executa somente se para extensão .csv
        If InStr(1, arquivo, ".csv") <> 0 And _
            InStr(1, arquivo, "xlsm") = 0 Then
            pastaDeTrabalho = Caminho & "\" & arquivo
            'abre pasta de trabalho
            Application.ScreenUpdating = False
            Workbooks.Open (pastaDeTrabalho)
            Workbooks(arquivo).Sheets(1)Range("A1:A" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlBlanks).EntireRow.Delete
            Columns(2).Delete
            'Workbooks(arquivo).Sheets(1).Range("BC2:BC" & linhas).Select 'Salva planilha aberta
            ActiveWorkbook.Save
            'Fecha planilha
            Workbooks(arquivo).Close
            linhaDeInicio = linhaDeInicio + 1
            End If
    
        pastaDeTrabalho = ""
   Next
    pastaDeTrabalhoAtiva = ""
    linhaDeInicio = 0
End Function

Function listfiles(ByVal sPath As String)

    Dim vaArray     As Variant
    Dim i           As Long
    Dim oFile       As Object
    Dim oFSO        As Object
    Dim oFolder     As Object
    Dim oFiles      As Object

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sPath)
    Set oFiles = oFolder.Files

    If oFiles.Count = 0 Then Exit Function

    ReDim vaArray(1 To oFiles.Count)
    i = 1
    For Each oFile In oFiles
        vaArray(i) = oFile.Name
        i = i + 1
    Next

    listfiles = vaArray

End Function

@OreiaG Tenho este que leva pra outra planilha mas não consigo tirar o loop eterno



Sub CapturarValoresCSV()
    Dim FolderPath As String
    Dim FileName As String
    Dim wb As Workbook
    Dim wsDestino As Worksheet
    Dim lastRowDestino As Long
    Dim lastRowOrigem As Long
    Dim i As Long
    Dim j As Long
    
    ' Defina o caminho da pasta onde estão localizados os arquivos .csv
    FolderPath = "C:\csv\"
    
    ' Defina o nome da planilha de destino (matriz.csv)
    Set wsDestino = ThisWorkbook.Worksheets.Add
    wsDestino.Name = "Matriz"
    
    ' Inicializa a última linha da planilha de destino
    lastRowDestino = 1
    
    ' Loop através dos arquivos .csv na pasta especificada
    FileName = Dir(FolderPath & "*.csv")
    Do While FileName <> ""
        ' Abre o arquivo .csv
        Set wb = Workbooks.Open(FolderPath & FileName)
        
        ' Captura os valores das colunas A, C, E, F, G e H
        lastRowOrigem = wb.Sheets(1).Cells(wb.Sheets(1).Rows.Count, "A").End(xlUp).Row
        
        For i = 1 To lastRowOrigem
            ' Verifica se a célula na coluna A não está vazia
            If wb.Sheets(1).Cells(i, "A").Value <> "" Then
                ' Captura os valores das colunas A, C, E, F, G e H
                Dim valorA As Variant
                Dim valorC As Variant
                Dim valorE As Variant
                Dim valorF As Variant
                Dim valorG As Variant
                Dim valorH As Variant
                
                valorA = wb.Sheets(1).Cells(i, "A").Value
                valorC = wb.Sheets(1).Cells(i, "C").Value
                valorE = wb.Sheets(1).Cells(i, "E").Value
                valorF = wb.Sheets(1).Cells(i, "F").Value
                valorG = wb.Sheets(1).Cells(i, "G").Value
                valorH = wb.Sheets(1).Cells(i, "H").Value
                
                ' Cola os valores capturados na planilha de destino
                wsDestino.Cells(lastRowDestino, "A").Value = valorA
                wsDestino.Cells(lastRowDestino, "B").Value = valorC
                wsDestino.Cells(lastRowDestino, "C").Value = valorE
                wsDestino.Cells(lastRowDestino, "D").Value = valorF
                wsDestino.Cells(lastRowDestino, "E").Value = valorG
                wsDestino.Cells(lastRowDestino, "F").Value = valorH
                
                lastRowDestino = lastRowDestino + 1 ' Aumenta o contador de linha na planilha de destino
            End If
        Next i
        
        ' Fecha o arquivo .csv sem salvá-lo
        wb.Close SaveChanges:=False
        
        ' Passa para o próximo arquivo .csv

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!