Notifications
Clear all

Problemas na importação

3 Posts
2 Usuários
0 Reactions
1,068 Visualizações
(@brunsftw)
Posts: 93
Estimable Member
Topic starter
 

Bom dia, amigos.
Eu tô trabalhando em uma automatização de planilha, mas estão ocorrendo alguns erros de importação que eu não tô conseguindo descobrir sozinho.
A planilha "testexx" tem a função de importar dados de um outro arquivo que contém mais de 4.000 linhas. Depois eu trabalho com essa importação dentro da mesma planilha na aba "Geral".
Na "Sub fnc3" está definido a range ("A2:N250"). Ela traz a 250 linhas tanto na "Plan1" quanto na "Geral".
O único problema é que eu preciso exportar as mais de 4.000 linhas e quando eu mudo a range para qualquer número acima de 250 não funciona como deveria.
eu acredito que o problema está na na "Sub Transferir_dados_planilhas()", mas não tô conseguindo identificar a causa.
Alguém me ajuda haha

 
Postado : 22/10/2015 7:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Brunsftw,

Não testei, mas tenta usar assim:

Sub Transferir_dados_planilhas()
Dim vUltimaLinha        As Long
Dim vUltimaLinhaTransf  As Long
Dim vNumeroLinhas       As Long
Dim wksDestino          As Worksheet
Dim vTodasPlans         As Worksheet
Dim vRegiao             As Range
Dim vRegiaoTransf       As Range

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Set wksDestino = ThisWorkbook.Worksheets("Geral")
    wksDestino.Range("A2:N10000").ClearContents
    
    For Each vTodasPlans In Worksheets
        If vTodasPlans.Name <> wksDestino.Name Then
            With vTodasPlans
                vUltimaLinha = .Range("D65536").End(xlUp).Row
                Set vRegiao = .Range("A2:N" & vUltimaLinha)
            End With
            
            On Error Resume Next
            vNumeroLinhas = vRegiao.Rows.Count

            With wksDestino
                vUltimaLinhaTransf = .Range("D65536").End(xlUp).Row + 1
                Set vRegiaoTransf = .Range(.Cells(vUltimaLinhaTransf, 1), .Cells(vUltimaLinhaTransf - 1 + vNumeroLinhas, 14))
                vRegiaoTransf.Value = vRegiao.Value
            End With
        End If
    Next

    Sheets("Geral").Select
    
    Set wksDestino = Nothing
    Set vRegiao = Nothing
    Set vRegiaoTransf = Nothing
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
End Sub

Qualquer coisa da o grito.
Abraço

 
Postado : 22/10/2015 8:03 am
(@brunsftw)
Posts: 93
Estimable Member
Topic starter
 

Cara, funcionou certinho!
Valeu mesmo!

 
Postado : 22/10/2015 8:11 am