Notifications
Clear all

EXECUTAR A MACRO ANTES DE SALVAR A PLANILHA

19 Posts
2 Usuários
0 Reactions
2,359 Visualizações
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

Olá,

Dando continuidade a uma solicitação anterior, gostaria de ver a possibilidade de executar a macro abaixo ao salvar a planilha. Antes esclarecerei as condições para a execução da macro.

1-A planilha já estará criada e salva. A macro não deve solicitar o local de salvamento e o nome.
2-A macro deve apenas formatar o range conforme descrito.
3-A planilha é salva várias vezes durante o uso, e não apenas no fechamento da mesma. Por isso será axecutada antes do salvamento aproveitando o tempo que algumas planilhas salvem o conteúdo.

A macro é:

Sub Format()
'
' Format Macro

    Range("A5:L35").Select
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Selection.Interior.ColorIndex = xlNone
End Sub

Agradeço a todos!

 
Postado : 14/02/2015 9:06 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Porque então, não tentar evitar usar o comando

[color=#0000FF]Select[/color]

etc.?

Att

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

 
Postado : 18/02/2015 10:26 am
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

E como ficaria na macro?

 
Postado : 18/02/2015 11:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Se for possível tentar não referenciar apenas aplicar o valor desejado.

Sub ReferenciarIntervalo()
    Range("A1:D35").Select '<--Veja
    With seletction
        [A1].Value = 10
        [D1].Value = "AleVBA"
    End With
End Sub

Sub Nao_ReferenciarIntervalo()
    With seletction
        [A1].Value = 10
        [D1].Value = "AleVBA"
    End With
End Sub

Att

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

 
Postado : 18/02/2015 1:37 pm
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

Nesse caso criaria-se várias referencias (fonte, estilo, tamanho, negrito...)

Encontrei esse código abaixo, veja como implementa-lo. Foi o que lhe falei anteriormente. Antes da seleção determina-se a posição do cursor (ou a célula ativa), e aplica-se essa posição ao final. Assim a seleção será eliminada e não se perderá a posição na planilha.

Para o arquivo:

Private Function gfLinhaAtual() As String
    Application.Volatile
 
    gfLinhaAtual = ActiveCell.Address
End Function

Para a planilha:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Calculate
End Sub

Pedi para tentar aproveitar o código porque eu não conseguiria reescrever a macro.

 
Postado : 18/02/2015 2:29 pm
Página 2 / 2