Jump to content
rafai

Optimização de Código VBA

Recommended Posts

rafai

Boa Tarde,preciso se possível da vossa ajuada.

Tenho um ficheiro em excel com um UserForm onde são inseridos valores. O problema é que tenho de inserir dados com uns segundos de diferença e verificar se algum dos dados inseridos já está na lista(só numa coluna). Ora apliquei um contar.se para fazer essa verificação, mas isto deixa-me o ficheiro muito  lento, demora mais de 10 segundos a fazer essa verificação. À medida que vou acrescentando dados torna-se mais lento.

Existe alguma forma de optimizar este código de forma que a execução do ficheiro fique mais rápida. Ou outro método de fazer isto. Os meus conhecimentos em VBA não são muitos, vou me desenrascando :wallbash:.

Desde já agradeço a vossa ajuda.

Private Sub CommandButton1_Click()

Dim x As Long

Sheets("Base_de_Dados").Select

x = Range("e1")

If ComboBox1 = "" Or TextBox2 = "" Then

MsgBox ("Falta Inserir Valores!" & " Não será guardado qualquer Registo."), vbCritical, "Aviso"

Else

Range("a2") = ComboBox1

Range("c2") = TextBox2

Range("d2") = Label8

Rows("2:2").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

       

End If

ComboBox1 = Empty

TextBox2 = Empty

TextBox2.SetFocus

x = Range("e1")

Label5 = x

Range("F2").Select

ActiveCell.FormulaR1C1 = "=COUNTIF(R[-1]C[-5]:R[2118]C[-5],RC[-5])"

   

   

If Range("f3") > 1 Then

   

TextBox1 = Range("a3")

Else

End If

ActiveWorkbook.Save

End Sub`

Abraço

Share this post


Link to post
Share on other sites
vbalexandre

Não sei se vai resolver mas tente..

Application.ScreenUpdating= False 'no inicio do seu código

"Seu código deve ficar entre os dois...."

Application.ScreenUpdating= true 'no fianl mude para verdadeiro

Share this post


Link to post
Share on other sites
Andrepereira9

Tenta também com o

 Application.EnableEvents = False
{
código
}
Application.EnableEvents = True

Isto faz com que não ocorram mais eventos, enquanto este está a ocorrer


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
rafai

Boa Tarde!

Andrepereira9 e vbalexandre, obrigado pela ajuda.

Mas isto não veio melhorar, pelo menos de forma notória a excução do ficheiro.

Se tiverem alguma outra sugestão postem sff, estou mesmo a precisar.

Obrigado.

Abraço

Share this post


Link to post
Share on other sites
rafai

Boa tarde!

Peço ao moderador que feche o tópico, já consegui resolver o problema de outra forma.

Obrigado a todos que participaram no tópico e aos que de alguma forma tetaram ajudar.

:confused:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.