Notifications
Clear all

Mudar aba via codigo

5 Posts
3 Usuários
0 Reactions
873 Visualizações
(@ederplopes)
Posts: 5
Active Member
Topic starter
 

boa tarde

sei o codigo abaixo enviado pelo @patropi, na minha planilha eu tenho umas 7 abas de atualizacao, mas somente 3 exibem o resultado
seria possivel no codigo abaixo colocar nome para que ele alterne somente entre as 3 planilhas?

Public altern As Date, i As Long

Sub AlternaPlans()
If i = 0 Then
i = 1
End If
altern = Now + TimeValue("00:00:05")
Application.OnTime altern, "AlternaPlans"
Sheets(i).Activate
If i < Sheets.Count Then
i = i + 1
Else: i = 1
End If
End Sub

Sub DeslAlterna()
On Error Resume Next
Application.OnTime earliesttime:=altern, procedure:="AlternaPlans", schedule:=False
MsgBox "desligado", vbInformation, "Status"
End Sub
 
Postado : 22/09/2016 10:16 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vindo, Ederplopes

Poderia ser assim...

Public altern As Date, i As Long
Public cjplans As Sheets

Sub AlternaPlans()
  If i = 0 Then
    Set cjplans = Sheets(Array("Plan1", "Plan3", "Plan4", "Plan6")) 'Use o nome das planilhas dentro desse array, entre aspas e separado por vírgulas
    i = 1
  End If
  altern = Now + TimeValue("00:00:05")
  Application.OnTime altern, "AlternaPlans"
  cjplans(i).Activate
  If i < cjplans.Count Then
    i = i + 1
  Else: i = 1
  End If
End Sub

Sub DeslAlterna()
  On Error Resume Next
  Application.OnTime earliesttime:=altern, procedure:="AlternaPlans", schedule:=False
  i = 0
  Set cjplans = Nothing
  MsgBox "desligado", vbInformation, "Status"
End Sub

 
Postado : 22/09/2016 11:17 am
(@ederplopes)
Posts: 5
Active Member
Topic starter
 

edson perfeito irmaooooo...

valeu cara....

 
Postado : 22/09/2016 12:40 pm
(@ederplopes)
Posts: 5
Active Member
Topic starter
 

o codigo deu certo, mas tive um problema qdo fui inserir ele em outra planilha
onde tenho varias atualizações no codigo ela nao esta rodando pq ja tem
uma parte do codigo q coloca o tempo altern = Now + TimeValue("00:00:05")
no meu codigo em outro momento ele faz isso tbm

Dim intervalosegundos

intervalosegundos = 10
Iniciar_Tempo = TimeValue(Now + TimeSerial(0, 0, intervalosegundos))
Application.OnTime Iniciar_Tempo, vMensagem

e nao esta alternando as planilhas

acho q ficou confuso neh

 
Postado : 23/09/2016 6:55 am
(@Anônimo)
Posts: 0
 

@ederplopes Boa noite

Para que essa VBA alterne abas de uma planilha especifica, o que devo alterar? Ocorre se eu abrir duas planilha diferente ela começa alternar ela tambem.

 
Postado : 07/10/2021 7:48 pm