Notifications
Clear all

Erro no código para gerar a base de dados

4 Posts
2 Usuários
0 Reactions
1,135 Visualizações
(@inimacro)
Posts: 17
Active Member
Topic starter
 

No código abaixo quando coloco para rodar, ocorre um erro nesse momento: wsDestino1.Range("a1").Select.

Caso eu vá para a planilha e clico na aba de destino a macro roda perfeitamente.

Como corrigir? já tentei o código de Sheets ("Agro).select porém não funciona.

[quote]Application.ScreenUpdating = False
 
 
  
 Dim wsOrigem1 As Worksheet
 Dim wsDestino1 As Worksheet
 Dim wsOrigem2 As Worksheet
 Dim wsDestino2 As Worksheet
 Dim wsOrigem3 As Worksheet
 Dim wsDestino3 As Worksheet
 Dim wsOrigem4 As Worksheet
 Dim wsDestino4 As Worksheet
 Dim wsOrigem5 As Worksheet
 Dim wsDestino5 As Worksheet
        
 
 Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração agro empresa.xlsm")
 Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração qualidade empresa.xlsm")
 Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração engenharia empresa.xlsm")
 Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração MKT.xlsm")
 Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração p&d.xlsm")
 
               
        'Arquivos e Abas de Origem e Destino - substitua aqui pelos nomes de seu workbook e worksheet
        Set wsOrigem1 = Workbooks("valoração agro empresa.xlsm").Worksheets("valoração")
        Set wsDestino1 = Workbooks("Resumo auto.xlsm").Worksheets("Agro")
          
                
            With wsOrigem1
                    'substitua aqui os ranges origem e destino pelos quais voce quer
                .Range("A1:v1000").Copy
                
                wsDestino1.Range("a1").Select
                
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

         Set wsOrigem2 = Workbooks("valoração qualidade empresa.xlsm").Worksheets("valoração")
        Set wsDestino2 = Workbooks("Resumo auto.xlsm").Worksheets("Qualidade")
          
            With wsOrigem2
                    'substitua aqui os ranges origem e destino pelos quais voce quer
                .Range("A1:v1000").Copy
                wsDestino2.Select
                wsDestino2.Range("a1").Select
                
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                
                Set wsOrigem3 = Workbooks("valoração p&d.xlsm").Worksheets("valoração")
        Set wsDestino3 = Workbooks("Resumo auto.xlsm").Worksheets("P&D")
          
            With wsOrigem3
                    'substitua aqui os ranges origem e destino pelos quais voce quer
                .Range("A1:v1000").Copy
                wsDestino3.Select
                wsDestino3.Range("a1").Select
                
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                
                Set wsOrigem4 = Workbooks("valoração engenharia empresa.xlsm").Worksheets("valoração")
        Set wsDestino4 = Workbooks("Resumo auto.xlsm").Worksheets("Engenharia")
          
            With wsOrigem4
                    'substitua aqui os ranges origem e destino pelos quais voce quer
                .Range("A1:v1000").Copy
                wsDestino4.Select
                wsDestino4.Range("a1").Select
                
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                
                Set wsOrigem5 = Workbooks("valoração MKT.xlsm").Worksheets("valoração")
        Set wsDestino5 = Workbooks("Resumo auto.xlsm").Worksheets("MKT")
          
            With wsOrigem5
                    'substitua aqui os ranges origem e destino pelos quais voce quer
                .Range("A1:v1000").Copy
                wsDestino5.Select
                wsDestino5.Range("a1").Select
                
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      
                
            End With
            End With
     End With
     End With
     End With



End Sub[/quote]
 
Postado : 24/04/2018 8:05 am
(@klarc28)
Posts: 971
Prominent Member
 

..............

 
Postado : 24/04/2018 8:08 am
(@inimacro)
Posts: 17
Active Member
Topic starter
 
wsDestino1.Select
wsDestino1.Range("a1").Select

Apareceu o erro: "erro em tempo de execução '1004': O método 'Select' do objeto '_Worksheet' falhou

 
Postado : 24/04/2018 8:22 am
(@klarc28)
Posts: 971
Prominent Member
 

Vamos esclarecer:

ws = WorkSheet = Guia / Planilha
wb = WorkBook = Arquivo do Excel / Pasta de Trabalho

Você não fez a declaração das WorkBooks:

Dim wbOrigem1 As WorkBook
Dim wbOrigem2 As WorkBook
Dim wbOrigem3 As WorkBook
Dim wbOrigem4 As WorkBook
Dim wbOrigem5 As WorkBook
Dim wbDestino1 As WorkBook
Dim wbDestino2 As WorkBook
Dim wbDestino3 As WorkBook
Dim wbDestino4 As WorkBook
Dim wbDestino5 As WorkBook

Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração agro empresa.xlsm")
Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração qualidade empresa.xlsm")
Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração engenharia empresa.xlsm")
Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração MKT.xlsm")
Workbooks.Open ("A:_EMPRESAS1_LOJA2_LOJA21_Projetos_AtivosEMPRESA# Pasta de trabalhoTrabalho 2018Valoraçãovaloração p&d.xlsm")


        Set wbOrigem1 = Workbooks("valoração agro empresa.xlsm")
        Set wbDestino1 = Workbooks("Resumo auto.xlsm")

'Faça o mesmo para as demais

1. Antes de selecionar a guia, Selecione o arquivo
2. Antes de selecionar a célula / intervalo, Selecione a guia (planilha)
3. Só então Selecione a célula / intervalo

Por exemplo:

wbDestino1.Select
wbDestino1.wsDestino1.select
wbDestino1.wsDestino1.Range("a1").Select

Repita o mesmo processo quando for fazer qualquer coisa dentro de outro arquivo, senão vai dar erro.

 
Postado : 24/04/2018 8:31 am