none
macro da primeira planilha gera erro se estiver trabalhando na segunda planilha (workbook) RRS feed

  • Pergunta

  • Criei uma planilha que busca dados da web para se atualizar e que também após a atualização executa um macro.

    Tudo funciona direito, a menos que eu abra ou crie outra planilha, o que causa erro na execução da macro desta primeira, pois a macro quando executa e eu estou nesta segunda planilha ele procura sheet da primeira e como não encontra gera erro.

    Há como eu executar a execução da macro apenas a primeira planilha.

    terça-feira, 29 de julho de 2014 17:42

Todas as Respostas

  • Ative a planilha que precisa ficar em primeiro plano durante a execução da Macro.

    Windows("Planilha que contém a macro.xlsx").Activate

    terça-feira, 29 de julho de 2014 17:47
  • Altere todos os trechos que contém o nome da planilha..

    de

    Sheets("NomedaPlanilha") 

    Para

    ThisWorkbook.Sheets("NomedaPlanilha")

    terça-feira, 29 de julho de 2014 19:59
  • Ative a planilha que precisa ficar em primeiro plano durante a execução da Macro.

    Windows("Planilha que contém a macro.xlsx").Activate


    Na vdd não quero que ela fique em primeiro plano, quero apenas que rode sem preoblemas.
    terça-feira, 29 de julho de 2014 22:58
  • Altere todos os trechos que contém o nome da planilha..

    de

    Sheets("NomedaPlanilha") 

    Para

    ThisWorkbook.Sheets("NomedaPlanilha")

    Deu erro.

    este é parte do código:

    Application.ScreenUpdating = False
    ActiveWorkbook.RefreshAll
    Sheets("Coleta").Select
    If Range("C2") = Range("A1") Then
    Else
      Range("A1:A1000").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("A2").Select
        ActiveSheet.Paste
       Range("C2").Select
        Selection.Copy
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        End If

    terça-feira, 29 de julho de 2014 23:00
  • Tenta agora.

    Sub prcCopiar()
        
        Application.ScreenUpdating = False
        
        ThisWorkbook.RefreshAll
    
        Dim coleta As Worksheet
        Set coleta = ThisWorkbook.Sheets("Coleta")
        
        If coleta.Range("C2") = coleta.Range("A1") Then
        
        Else
            
            coleta.Range("A1:A1000").Copy coleta.Range("A2")
            
            Application.CutCopyMode = False
            
            coleta.Range("C2").Copy
            coleta.Range("A1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
            
            coleta.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            
        End If
        
    End Sub
    

    quarta-feira, 30 de julho de 2014 01:22