Prezados, boa tarde,
Estou precisando de ajuda na seguinte situação. Criei uma macro que realiza a importação de dados de varias outras planilhas. A planilha de importação localiza o caminho que foi informado na aba Importação , coluna A (Caminho) e realiza a importação dos dados.
Porém estou com um problema que somente consigo importar as linhas visiveis, pois as linhas que estão ocultas ou filtradas a mesma não importa. Preciso de ajuda para ajustar a planilha de modo que ela importe os dados visiveis e ocultos.
Obs.: Não estou conseguindo enviar o anexo
Macro
Sub importa()
'Definição das variáveis
'==================================
Dim W As Worksheet
Dim WNew As Workbook
Dim ArqParaAbrir As Variant
Dim A As Integer
Dim NomeArquivo As String
Dim senha As Variant
senha = "voto@4321"
'loop de busca dos dados
'========================
lin = 2
While Cells(lin, 1) <> ""
'Capturar arquivos para tratamento
'===================================
caminho = Cells(lin, 1)
On Error GoTo erro
ArqParaAbrir = caminho
'ArqParaAbrir = Application.GetOpenFilename("arquivos do excel(*.xl*),*.xl*", Title:="importador", MultiSelect:=True)
If Not IsArray(ArqParaAbrir) Then
If ArqParaAbrir = "" Or ArqParaAbrir = False Then
MsgBox "Processo abortado, nenhum arquivo escolhido", vbOKOnly, "Processo abortado, nenhum arquivo escolhido"
Exit Sub
End If
End If
Application.ScreenUpdating = False
'Começa a importação dos dados
'Obs.: Se quiser apagar os dados insira o código W.UsedRange.EntireColumn.Delete
'Se não quiser apagar os dados apague o código W.UsedRange.EntireColumn.Delete
'=======================================
Set W = Sheets("Importação")
'W.UsedRange.EntireColumn.Delete
W.Select
'Loop para importação dos dados
'=======================================
'For A = LBound(ArqParaAbrir) To UBound(ArqParaAbrir)
NomeArquivo = ArqParaAbrir
Application.Workbooks.Open (NomeArquivo)
Set WNew = ActiveWorkbook
'ActiveSheet.Unprotect senha ' se a senha for diferente nas diversas planilha vai dar erro!!!
Sheets("ENTRADA DE NF").Select 'informar a aba ser transferida
ActiveSheet.Range("B5:Q1000").Copy
W.Cells(W.Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Vc não precisa selecionar a região para poder copiar!
'Selection.Copy Destination:=W.Cells(W.Rows.Count, 1).End(xlUp).Offset(1, 0)
Application.CutCopyMode = False ' esse comando limpa a área de transferência
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True
'W.Cells(W.Rows.Count, 1).End(xlUp).Offset(1, 0).Select não é preciso mover-se na plan destino...A instrução de cópia já informa o destino!
'Next A
'definição dos caminhos
'=======================
Application.ScreenUpdating = True
Call Copiar
Call Limpar
lin = lin + 1
Wend
Application.ScreenUpdating = True
'MsgBox "Processo Concluido. Arquivos copiados..."
Exit Sub
erro:
MsgBox "Foram encontrados problemas durante a importação"
End Sub
Postado : 18/09/2018 1:02 pm