luisbarros,
O erro ocorre justamente porque o "ME" é uma referência direta ao UserForm (conteiner de controles) que possui o controle TextBox em questão.
Para referenciar controles contidos em um UserForm, você pode e deve usar a cláusula With, exemplo:
With Me
'Código dentro deste With, fazem referência direta ao UserForm
With .TextBox1
'Código dentro deste With, fazem referência direta ao controle TextBox
'Código que faz uma verificação / analisa uma condição
End Wtih
End With
Imagine então, que dentro do seu UserForm, existam 1 ComboBox, 1 TextBox, 1 OptionButton e 1 CheckBox.
Para manipular cada controle sem ter de reescrever a referência ao UserForm, ficaria assim :
With Me
'Código dentro deste With, fazem referência direta ao UserForm
'Manipulamos o ComboBox
With .ComboBox1
'Código dentro deste With, fazem referência direta ao controle ComboBox
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o TextBox
With .TextBox1
'Código dentro deste With, fazem referência direta ao controle TextBox
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o OptionButton
With .OptionButton1
'Código dentro deste With, fazem referência direta ao controle OptionButton
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o CheckBox
With .CheckBox1
'Código dentro deste With, fazem referência direta ao controle CheckBox
'Código que faz uma verificação / analisa uma condição
End Wtih
End With
Isso torna o código mais "limpo" e organizado.
Agora imagine ter de manipular muitos controles, tendo que referenciar o UserForm que os possui :
'Manipulamos o ComboBox
With UserForm1.ComboBox1
'Código dentro deste With, fazem referência direta ao controle ComboBox
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o TextBox
With UserForm1.TextBox1
'Código dentro deste With, fazem referência direta ao controle TextBox
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o OptionButton
With UserForm1.OptionButton1
'Código dentro deste With, fazem referência direta ao controle OptionButton
'Código que faz uma verificação / analisa uma condição
End Wtih
'Manipulamos o CheckBox
With UserForm1.CheckBox1
'Código dentro deste With, fazem referência direta ao controle CheckBox
'Código que faz uma verificação / analisa uma condição
End Wtih
No fim, o resultado será o mesmo, porém ao separar a manipulação de controles em blocos, fica fácil identificar possíveis erros / referências erradas, sem contar que o código fica mais limpo e fácil de entender / interpretar.
Aos colegas mais experientes, todo complemento, observação ou correção é sempre bem-vinda.
Espero ter ajudado.
Abs.
Saulo Robles
Postado : 24/10/2019 9:42 pm