none
Como copiar apenas as informações das linhas que contem valores? Macro / VBA RRS feed

  • Pergunta

  • Ola eu tenho uma macro pronta que copia informações de varias planilhas e as cola em uma unica base. Porém nem sempre todas as linhas da base que eu tenho contém informação preenchida. E eu queria que essa macro trouxesse apenas as linhas que contenham informações. É possivel? Eu nao tenho muito conhecimento de macro e não sei como atualizar a mesma sem que ela perca a funcionalidade que eu preciso.

    Sub Consolidar()

    Dim FSO As Object
    Dim Pasta As String
    Dim Planilha As Object
    Dim OpenBook As String
    Dim WLinha As Long
    Dim WB As Workbook
    Dim SHC As Worksheet


    Set WB = ThisWorkbook
    Set SHC = Sheets("Consolidado")

    Set FSO = CreateObject("Scripting.FileSystemObject")

    'Troque Dados pelo nome da pasta onde vc salva o arquivos que sera copiado para a base

    Pasta = "C:\Users\" & Environ("UserName") & "\Desktop\Dados"



    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    For Each Planilha In FSO.GetFolder(Pasta).Files

    If InStr(1, Planilha, ".xlsx") = 0 Then GoTo PRÓXIMO

    Workbooks.Open (Planilha)
    OpenBook = ActiveWorkbook.Name

    'Sheets("Base Macro").Visible = True

    WLinha = Sheets("Base Macro").Range("A" & Rows.Count).End(xlUp).Row



    'Código para copiar
    'Ajuste o intervalo A2:Z

    Sheets("Base Macro").Range("A1:E" & WLinha).Copy

    Windows(ThisWorkbook.Name).Activate

    'Codigo para colar

    WLinha = SHC.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues


    Application.CutCopyMode = False
    Workbooks(OpenBook).Close False
    PRÓXIMO:
    Next

    Application.ScreenUpdating = True

    MsgBox "Dados Copiados com Sucesso!", vbInformation, "Aviso"

    Application.Calculation = xlCalculationAutomatic

    End Sub

    quarta-feira, 20 de junho de 2018 17:25