Notifications
Clear all

AUTO_OPEN vs WORKBOOK_OPEN

5 Posts
2 Usuários
0 Reactions
686 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, sabemos que ambos rodam an abertura. Muitos usam o auto_open e muitos usam o workbook_open.

Mas, qual é a diferença entre os dois? Quando me perguntam eu sempre indico que usem o evento, e explico e convenço, mas nunca pesquisei e não boto minha mão no fogo pelo quwe falo.

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

 
Postado : 01/11/2016 2:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Tirando o fato de o Workbook_Open ser uma melhoria do auto_open
Fonte: http://www.pcreview.co.uk/threads/auto_open-vs-workbook_open.953960/

A única diferença real entre auto_open e Workbook_Open é o momento em que eles são executados e o fato de que Workbook_Open é um evento especificamente associado ao objeto de pasta de trabalho

EU creio que essa resposta você já a tinha... :lol:

Att

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

 
Postado : 01/11/2016 4:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!
EU creio que essa resposta você já a tinha... :lol:

KKKK já sim... eu pesquisei também, depois de postar aqui, e encontrei alguns argumentos a mais, super interessantes, mas que complementam essa argumentação.
Eu de fato sempre uso/usei o evento... Mas eu sou chato, rs, eu quero saber pq, e poder explicar com propriedade... vou postar aqui depois, o que descobri .....

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

 
Postado : 01/11/2016 6:56 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

As diferenças que encontrei (aqui: http://www.pcreview.co.uk/threads/auto_ ... en.953960/ ):
workbook_open runs first and auto_open next
Quando vc abre uma pasta de trabalho manualmente, AMBOS vão rodar a não ser que você mantenha o o shift apertado.
Quando você abre uma pasta de trabalho com VBA, o auto_open não vai rodar a não ser que você inclua a linha abaixo após abertura:

ActiveWorkbook.RunAutoMacros xlAutoOpen

O código do evento do workbook vai rodar a não ser que você desligue os eventos antes de abrir:

Application.EnableEvents = FALSE

Dizem que Auto_open foi deixado para garantir compatibilidade com versões bem mais antigas do Excel.

As diferenças que descobri:
- A ordem com que rodam, quando eventos estão ligados e são abertos diretamente pelo explorer ou pelo excel:

    Workbook_Open
    auto_open
    Workbook_BeforeClose
    auto_close[/list:u:1r783s18]

    - O Auto_open e Auto_close sempre rodam, independentemente dos eventos estarem ou não ligados.
    - Não adianta tentar usar o auto_open para ligar os eventos e assim tentar garantir a execução do workbook_open. Motivo: ele roda depois.

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

     
Postado : 07/11/2016 7:26 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Dizem que Auto_open foi deixado para garantir compatibilidade com versões bem mais antigas do Excel.

Tem razão, Fernando. Num antigo manual (oficial) "Microsoft Office 97/Visual Basic Programmer's Guide" há uma tabela em que a Microsoft faz uma recomendação para substituir todas as antigas Auto-macros pelas novas, baseadas em eventos. Especificamente em relação ao evento Workbook_Open, recomenda: ..."Use this event instead of the Auto_Open macro".

Faz a mesma recomendação em relação a todos os outros: OnEntry por SheetChange, OnWindow por WindowDeactivate, OnSave por BeforeSave, etc.

As Auto-macros são compatíveis com as antigas folhas de macro xlm.

 
Postado : 07/11/2016 8:57 am