Alexandre, eu não acho que existam ideias melhores ou piores, mas sim, maneiras diferentes de se lidar com a programação, e isto, é uma das coisas que mais me apaixonam no VBA, qualquer questão pode ser resolvida e varias maneiras diferentes.
A sua maneira de lidar com a questão foi ótima, então se me permite, só para implementar a questão de abrir em qq aba atravez do atalho e obtermos o resultado, é definirmos a WorkSheet :
Então para não ter de anexar novamente o arquivo, seguem as rotinas com a implementação, é só trocar.
Primeiro, na Declaração do Formulario, vejam bem qdo falo declaração não é dentro de nenhuma rotina e sim fora, no escopo.
Adicione:
Dim wsEstoque As Worksheet
Depois substituam as demais rotinas pelas a abaixo :
Private Sub LojaCombo_Change()
MyRow = Me.LojaCombo.ListIndex + 3
Me.MarcaCombo.Value = wsEstoque.Range("A" + CStr(MyRow)).Text
Me.NameTextBox.Value = wsEstoque.Range("C" + CStr(MyRow)).Text
Me.ValueTextBox.Value = wsEstoque.Range("D" + CStr(MyRow)).Text
End Sub
Private Sub MarcaCombo_Change()
MyRow = Me.MarcaCombo.ListIndex + 3
Me.LojaCombo.Value = wsEstoque.Range("B" + CStr(MyRow)).Text
Me.NameTextBox.Value = wsEstoque.Range("C" + CStr(MyRow)).Text
Me.ValueTextBox.Value = wsEstoque.Range("D" + CStr(MyRow)).Text
End Sub
Private Sub UserForm_Initialize()
'Aqui definimos a Aba que queremos buscar os dados
Set wsEstoque = Worksheets("Base")
Records = wsEstoque.Range("A1").Value
Me.MarcaCombo.Clear
Me.LojaCombo.Clear
For MyRow = 3 To (Records + 2)
Me.MarcaCombo.AddItem wsEstoque.Range("A" + CStr(MyRow)).Text
Me.LojaCombo.AddItem wsEstoque.Range("B" + CStr(MyRow)).Text
Next MyRow
End Sub
Para esclarecer a diferença :
Desta forma estamos utilizando a aba que está Ativa :
Me.MarcaCombo.Value = Range("A" + CStr(MyRow)).Text
Aqui nos referimos a Aba wsEstoque, a qual foi definida pelas Instruções :
Dim wsEstoque As Worksheet, e
Set wsEstoque = Worksheets("Base")
Me.MarcaCombo.Value = wsEstoque.Range("A" + CStr(MyRow)).Text
Assim independente da aba que estivermos, os dados serão buscados sempre na aba "Base".
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 01/04/2012 11:07 am