Notifications
Clear all

Como criar VBA que altere resolucao de determinada plan

6 Posts
2 Usuários
0 Reactions
1,161 Visualizações
(@wilker-adm)
Posts: 17
Active Member
Topic starter
 

Boa tarde.

Encontrei uma dificuldade ao tentar criar um código executável vinculado ao botão ComboBox1_Change(), que tem acesso a diversas planilhas (Objetivos, Fones, Rural, jan, fev, mar...).

A regra é a seguinte:

Se selecionar o item Rural do ComboBox1_Change() a resolução será 80%
Se selecionar o item Objetivos do ComboBox1_Change() a resolução será 85%
Se selecionar o item Fones do ComboBox1_Change() a resolução será 100%
Se selecionar qualquer outro item do ComboBox1_Change() a resolução será 114%

 
Postado : 21/09/2016 2:13 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Veja se é isto...

Private Sub ComboBox1_Change()

i = ComboBox1.Value
Sheets(i).Activate

If i = "Rural" Then
ActiveWindow.Zoom = 80
ElseIf i = "Objetivos" Then
ActiveWindow.Zoom = 85
ElseIf i = "Fones" Then
ActiveWindow.Zoom = 100
Else
ActiveWindow.Zoom = 114
End If

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/09/2016 3:11 pm
(@wilker-adm)
Posts: 17
Active Member
Topic starter
 

Seria Sim...

Mas não funcionou, pois quando executo "Objetivos" o zoom fica 114 e não 85. Obrigado.

 
Postado : 22/09/2016 5:57 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Seria Sim...
Mas não funcionou, pois quando executo "Objetivos" o zoom fica 114 e não 85. Obrigado.

wilker, verifique se não tem erro no nome "Objetivos", pois as instruções que o Edson passou é para funcionar corretamente.

Uma outra opção apesar de fazerem a mesma coisa, é só uma outra forma de escrever, seria utilizar o Select Case :

Private Sub ComboBox1_Change()

    i = ComboBox1.Value
    Sheets(i).Activate
       
    Select Case i
        Case "Rural"
            ActiveWindow.Zoom = 80
        Case "Objetivos"
            ActiveWindow.Zoom = 85
        Case "Fones"
            ActiveWindow.Zoom = 100
        
        Case Else
            ActiveWindow.Zoom = 114
 
    End Select
        
End Sub

Verifique primeiro a digitação dos nomes das abas teste novamente e se ainda não funcionar teste com a rotina acima, mas tenho a certeza que é devido ao nome.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/09/2016 7:00 pm
(@wilker-adm)
Posts: 17
Active Member
Topic starter
 

Mauro, você estava certo... Era divergência de nomes, obrigado.

Outra duvida para concluir esse código:

Estou na planilha "Fones" daí clico no botão ComboBox e escolho a planilha "Objetivos"; daí decido voltar a planilha "Fones".

Ao voltar na planilha que executou o comando percebe-se que o botão esta com o nome do ultimo comando executado (Objetivos), portanto tem como criar uma linha de código para adicionar ao final com o intuito de limpar o botão para ficar apto a escolher outra planilha?

 
Postado : 22/09/2016 8:29 pm
(@wilker-adm)
Posts: 17
Active Member
Topic starter
 

No botão combobox inseri uma célula vazia, para escolhe-la quando querer repetir um comando que já esta no botão... Mas apresenta uma mensagem de erro: Erro de tempo de execução 9. Subscrito fora do intervalo.

Ai clico em Fim e o botão fica vazio pronto para repetir o mesmo comando anterior.

 
Postado : 22/09/2016 8:47 pm