Mudar aba via codig...
 
Notifications
Clear all

Mudar aba via codigo


ederplopes
Posts: 5
Registered
Topic starter
(@ederplopes)
Active Member
Entrou: 5 anos atrás

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
Responder
4 Respostas
1 Responder
Agnaldo
Registered
(@agnaldo)
Entrou: 2 meses atrás

New Member
Posts: 1

@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.

Responder
EdsonBR
Posts: 895
Moderator
(@edsonbr)
Prominent Member
Entrou: 6 anos atrás

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
Responder
ederplopes
Posts: 5
Registered
Topic starter
(@ederplopes)
Active Member
Entrou: 5 anos atrás

edson perfeito irmaooooo...

valeu cara....

Responder
ederplopes
Posts: 5
Registered
Topic starter
(@ederplopes)
Active Member
Entrou: 5 anos atrás

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("0005")
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

Responder