Luis Felipe
New Member
- Joined
- Jul 11, 2016
- Messages
- 8
(Posted originally in Brazilian Portuguese)
Olá!
Por favor, eu tenho um documento Excel no qual desenvolvi uma macro e quando estou com esse documento aberto e em seguida abro outro documento Excel, o que ocorre é que quando troco do primeiro documento (que tem a macro) para o outro documento (que não tem a macro) e volto, a macro no primeiro documento é executada. Isso está me atrapalhando, pois quando preciso adicionar dados que são usados para os cálculos executados pela macro, devido a ter desabilitado muitos elementos da tela do Excel para deixar com mais jeito de aplicação, tenho que toda vez entrar no modo de editor da macro (Alt F11) e desabilitar a parte da macro que esconde os menus, barras laterais, etc. da tela.
O código que estou utilizando para remover esses elementos do Excel são os seguintes:
1- Sub TelaMenu() - é a sub que transforma a tela do Excel numa tela com mais jeito de aplicação, removendo menus e barras laterais;
2- Sub TelaNormal() - é a sub que volta para a tela do normal do Excel, restaurando os menus e barras laterais do Excel.
3- Outras subs que chamam TelaMenu, TelaNormal, etc. Na ordem em que aparece no código, tenho os seguintes procedimentos em uso: Activate, BeforeClose, Deactivate, Open.
Agradeço a quem puder me ajuda com este tema. Obrigado.
Olá!
Por favor, eu tenho um documento Excel no qual desenvolvi uma macro e quando estou com esse documento aberto e em seguida abro outro documento Excel, o que ocorre é que quando troco do primeiro documento (que tem a macro) para o outro documento (que não tem a macro) e volto, a macro no primeiro documento é executada. Isso está me atrapalhando, pois quando preciso adicionar dados que são usados para os cálculos executados pela macro, devido a ter desabilitado muitos elementos da tela do Excel para deixar com mais jeito de aplicação, tenho que toda vez entrar no modo de editor da macro (Alt F11) e desabilitar a parte da macro que esconde os menus, barras laterais, etc. da tela.
O código que estou utilizando para remover esses elementos do Excel são os seguintes:
1- Sub TelaMenu() - é a sub que transforma a tela do Excel numa tela com mais jeito de aplicação, removendo menus e barras laterais;
Code:
Sub TelaMenu()
With Application
.ScreenUpdating = False
.EnableEvents = False
.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
.DisplayFormulaBar = False
.DisplayStatusBar = False
.Caption = "CSM TIME REPORT"
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.DisplayHeadings = False
.DisplayGridlines = False
End With
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
2- Sub TelaNormal() - é a sub que volta para a tela do normal do Excel, restaurando os menus e barras laterais do Excel.
Code:
Sub TelaNormal()
With Application
.ScreenUpdating = False
.EnableEvents = False
.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
.DisplayFormulaBar = True
.DisplayStatusBar = True
.Caption = ""
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayHeadings = True
.DisplayGridlines = True
End With
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
3- Outras subs que chamam TelaMenu, TelaNormal, etc. Na ordem em que aparece no código, tenho os seguintes procedimentos em uso: Activate, BeforeClose, Deactivate, Open.
Code:
Option Explicit
Private Sub Workbook_Activate()
Call TelaMenu
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call TelaNormal
ThisWorkbook.Save
End Sub
Private Sub Workbook_Deactivate()
Call TelaNormal
End Sub
Private Sub Workbook_Open()
Sheets("DATA").ScrollArea = "A1:S50"
Call TelaMenu
End Sub
Agradeço a quem puder me ajuda com este tema. Obrigado.