Você diz esse Código, mas colocou tres(03), e numa passagem rápida, de fato não há muito a se fazer, pois dependeria de entender todo o conjunto e analisar em que momento esão sendo chamado estas rotinas, por exemplo :
Dentro da :
Sub ProcA()
Temos:
If ActiveCell.Text = frmContrato.NContrato Then
Ja que está utilizando ActiveCell, em que momento ela foi selecionada ?
ActiveCell.Offset(0, 5).Select
Se a condição for verdadeira é selecionado outra celula, e a não ser que apos esta seleção a ação a executar esteja na rotina que vem a seguir : Call ProcB, não vejo o porque da seleção.
Depois temos, se a condição for Falsa :
Else
Mais Quatro rotinas,
Call addProduto
Call filtrar_dados
frmContrato.ListBoxLoc1.Clear
Na instrução acima, desde que esta rotina não esteja sendo executada dentro do form que contem o listboxloc1, ou até mesmo se estiver, poderia estar na rotina abaixo que preenche acredito eu o Listbox.
Call PreencherListBox
Call ValorTotalFiltro
frmContrato.bt_Finalizar.Enabled = True
frmContrato.ValorTotal = Format(frmContrato.ValorTotal, "#,###0.00")
End If
Nas outras rotinas temos praticamete as mesmas situações, ActiveCell, isto nos induz a definição que elas já estão selecionadas ou foram atraves de alguma instrução antes de chegar nas linhas.
Então se a solicitação era mais para uma opinião, deixo aqui a minha, mas se está tendo problema de performance com as mesmas e quer alguma sugestão para melhorar, só com conjunto inteiro.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 21/06/2013 10:00 am