Usuário com melhor resposta
AJUDA COM COMO PARAR COM A TROCA DE ABAS

Pergunta
-
Olá Bom dia!
Ultimamente estou ajeitando alguns excels, para terem uma aparência "melhor", porém o que ocorre neste que estou parado?
"
Sub Salvar_Notas()
Dim Nota As Double
Dim Lugar As String
Dim Tomador As String
Dim Vencimento As Date
Dim Emissão As Date
Dim Total As Double
Dim UltimaCel As Integer
Nota = Range("A2").Value
Lugar = Range("B2").Value
Tomador = Range("C2").Value
Emissão = Range("D2").Value
Vencimento = Range("E2").Value
Total = Range("F2").Value
Sheets("Relatório").Select
UltimaCel = Range("A1048576").End(xlUp).Row + 1
Range("A" & UltimaCel).Value = Data
Range("B" & UltimaCel).Value = Lugar
Range("C" & UltimaCel).Value = Tomador
Range("D" & UltimaCel).Value = Emissão
Range("E" & UltimaCel).Value = Vencimento
Range("F" & UltimaCel).Value = Total
Sheets("Nota").Select
Range("A2").Value = Range("M13").Value + 1
Range("B2").Value = ""
Range("C2").Value = ""
Range("D2").Value = ""
Range("F2").Value = ""
MsgBox "Gravado com sucesso"
End Sub
"
Este é o código, é um bem simples e fácil, porém o que ocorre, toda vez ele é salvo, mostra uma "trocação" de abas que visualmente não é saudável para empresa, alguém me ajuda?
Obrigado,
Vinicius Okamoto
Respostas
-
Vinícius,
para impedir a atualização da tela durante a execução de uma macro, e de quebra torná-la mais rápida, basta utilizar no começo do código:
Application.ScreenUpdating = False
E no final:
Application.ScreenUpdating = True
Aproveitando o post, uma dica útil é que muitas operações dispensam a ação "Selecionar" antes de ser executada e isto acarreta quase sempre em ganho de desempenho. Este é o caso da sugestão acima, onde basta endereçar corretamente o local desejado, evitando a mudança das abas.
De toda forma, eu sempre aconselho desabilitar a atualização da tela, a menos que seja imprescindível mantê-la ativada.
Abraço.
Filipe Magno
- Marcado como Resposta Vinicius Leonardo terça-feira, 26 de setembro de 2017 16:34
Todas as Respostas
-
Sub Salvar_Notas() Dim Nota As Double Dim Lugar As String Dim Tomador As String Dim Vencimento As Date Dim Emissão As Date Dim Total As Double Dim UltimaCel As Integer Nota = Range("A2").Value Lugar = Range("B2").Value Tomador = Range("C2").Value Emissão = Range("D2").Value Vencimento = Range("E2").Value Total = Range("F2").Value UltimaCel = Sheets("Relatório").Range("A1048576").End(xlUp).Row + 1 Sheets("Relatório").Range("A" & UltimaCel).Value = Data Sheets("Relatório").Range("B" & UltimaCel).Value = Lugar Sheets("Relatório").Range("C" & UltimaCel).Value = Tomador Sheets("Relatório").Range("D" & UltimaCel).Value = Emissão Sheets("Relatório").Range("E" & UltimaCel).Value = Vencimento Sheets("Relatório").Range("F" & UltimaCel).Value = Total Sheets("Nota").Range("A2").Value = Range("M13").Value + 1 Sheets("Nota").Range("B2").Value = "" Sheets("Nota").Range("C2").Value = "" Sheets("Nota").Range("D2").Value = "" Sheets("Nota").Range("F2").Value = "" MsgBox "Gravado com sucesso" End Sub
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 terça-feira, 5 de setembro de 2017 03:23
-
-
Vinícius,
para impedir a atualização da tela durante a execução de uma macro, e de quebra torná-la mais rápida, basta utilizar no começo do código:
Application.ScreenUpdating = False
E no final:
Application.ScreenUpdating = True
Aproveitando o post, uma dica útil é que muitas operações dispensam a ação "Selecionar" antes de ser executada e isto acarreta quase sempre em ganho de desempenho. Este é o caso da sugestão acima, onde basta endereçar corretamente o local desejado, evitando a mudança das abas.
De toda forma, eu sempre aconselho desabilitar a atualização da tela, a menos que seja imprescindível mantê-la ativada.
Abraço.
Filipe Magno
- Marcado como Resposta Vinicius Leonardo terça-feira, 26 de setembro de 2017 16:34
-