Página 1 de 1

Macro planilha minimzada

Enviado: 05 Mar 2020 às 14:52
por enunes
Como aponto para a macro rodar em determinada planilha? Quero que uma rotina rode em uma planilha enquanto trabalho rm outra...

Fiz uma de atualização mas se minimizo da erro

Re: Macro planilha minimzada

Enviado: 05 Mar 2020 às 15:15
por osvaldomp
Código: Selecionar todos
With Sheets("Plan1")
  .blá
  .blá
  ...
  ...
End With

Macro planilha minimzada

Enviado: 05 Mar 2020 às 15:21
por enunes
Mas se abro outra planilha da erro..

Re: Macro planilha minimzada

Enviado: 05 Mar 2020 às 15:24
por osvaldomp
Disponibilize o código.

Re: Macro planilha minimzada

Enviado: 05 Mar 2020 às 15:59
por enunes
Desde já obrigado pelo tempo em me ajudar.

Este o código, que na verdade quero que fique alternando entre as abas como se fosse uma apresentação. Estou com dois monitores, e essa que quero que rode é para ficar em um, no outro deveria trabalhar com outras planilhas normalmente. Porém se estou na outra a seleção de célula volta para esta que está como apresentação. Também preciso disso pois terei outra base que ficará minimizada que precisaria ser atualizada a cada tempo.
Código: Selecionar todos
Public altern As Date, i As Long

Sub AlternaPlans()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Emb.Modalidade")
If i = 0 Then
i = 1
End If
altern = Now + TimeValue("00:00:10")
Application.OnTime altern, "AlternaPlans"
ThisWorkbook.Sheets(i).Activate
If i < Sheets.Count Then
i = i + 1
Else: i = 1
End If
End With
Application.ScreenUpdating = True
End Sub

Sub DeslAlterna()
On Error Resume Next
Application.OnTime earliesttime:=altern, procedure:="AlternaPlans", schedule:=False
MsgBox "Apresentação Desligada", vbInformation, "Status"
End Sub

Re: Macro planilha minimzada

Enviado: 05 Mar 2020 às 21:51
por osvaldomp
viewtopic.php?f=12&t=11628&p=52616#p52616

Seguem algumas ideias não testadas pois eu não disponho de dois monitores. Teste uma por vez e veja se aproveita alguma.
Monitor1 ~~~> arquivo de trabalho
Monitor2 ~~~> apresentação
##############################################################################################################################
1. se o arquivo aberto no Monitor1 for sempre o mesmo então coloque no final do código um comando para reativá-lo pelo nome
Application.ScreenUpdating = True
Workbooks("MeuArquivo.xlsm").Activate
End Sub

##############################################################################################################################
2. se o arquivo aberto no Monitor1 não for sempre o mesmo então coloque uma caixa de mensagem no início do código para capturar qual é o arquivo ativo.
Sub AlternaPlans()
MsgBox ActiveWorkbook.Name

e se o arquivo retornado como ativo for o do Monitor1 então atribua o arquivo ativo a uma variável e reative-o ao final do código (remova a MsgBox do código)
Sub AlternaPlans()
Dim wb as Workbook
Set wb = ActiveWorkbook
...
...
...
Application.ScreenUpdating = True
wb.Activate
End Sub

##############################################################################################################################
3. se o arquivo aberto no Monitor1 for único e for aberto sempre depois do arquivo do Monitor2, então tente o comando abaixo para reativá-lo
Application.ScreenUpdating = True
Workbooks(Workbooks.Count).Activate
End Sub

###############################################################################################################################
4. abra uma instância do Excel para cada monitor
###############################################################################################################################

Macro planilha minimzada

Enviado: 05 Mar 2020 às 22:36
por enunes
Vou testar e retorno.. obrigado