Determinar variável...
 
Notifications
Clear all

Determinar variável ao iniciar

7 Posts
4 Usuários
0 Reactions
1,270 Visualizações
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Pessoal , me da uma ajuda ai...

eu tenho uma combobox que carrega os dados de todos os estados do brasil.. e também tenho outras variáveis que uso para o funcionamento do meu programa...

o problema é que quando inicio meu form.. a partir da parte negrito.. linha = 2 ele me retorna um erro de variável não defeinida.. não estou sabendo fechar as variáveis corretamente para que código funcione corretamente

Private Sub UserForm_Initialize()
txtcodigo.SetFocus

Set wsCadastro = ThisWorkbook.Worksheets("CLIENTES")
Call HabilitaBotoesAlteracao
Call CarregaDadosInicial
Call DesabilitaControles

linha = 2

Do Until Sheets("estados").Cells(linha, 1) = ""
cmbUF.AddItem Sheets("estados").Cells(linha, 1)
linha = linha + 1
Loop

end sub

 
Postado : 27/05/2014 1:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Ao testar o código eu não tive problema, não gerou erro!!

Att

 
Postado : 27/05/2014 1:38 pm
(@lorenzon)
Posts: 355
Honorable Member
 

idem Alexandre!

Wfranca,

Creio que este erro ocorre quando você inicializa o seu projeto e tenha outra planilha sendo executada e, por conta disso, o mesmo não encontra o sheets ("estados").

 
Postado : 27/05/2014 2:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se for somente esta Variável, a mensagem já está informando qual o erro "erro de variável não definida" ou seja falta Declara-la de que tipo a mesma é:

linha=2

Declare a mesma no inicio da Rotina:
Dim linha as Integer 'ou long

[]s

 
Postado : 27/05/2014 3:54 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Wellington,

Só complementando o que o Mauro falou:

Se código só dará esse erro se você tiver configurado previamente o VBA para que todas as variáveis sejam previamente declaradas antes de serem utilizadas. Isso se faz no Menu Ferramentas/Opções/Aba Editor/Marcar CheckBox "Requerer declaração de variável" do editor do VBA. Dessa forma, quando você incia uma subrotina o VBa insere o comando Option Explicit no começo do módulo o que faz com que sejam solicitadas todas as declarações de variáveis. Isso é muito útil em programação para evitar bugs de variável (quando se digita uma variável errada e a linguagem interpreta como uma variável nova.

Dessa forma, a orientação do Mauro está corretíssima quanto à necessidade de declaração prévia da variável.

 
Postado : 27/05/2014 5:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner, bem obs quanto ao uso de Option Explicit, eu não comentei isto e até iniciei a resposta com "Se for somente esta Variável" pelo fato de, se tivermos Option Explicit declarada a primeira mensagem de erro de Variável não Definida seria na linha :
Set wsCadastro............. onde seria indicado "wsCadastro" como não declarada, fato que vemos não haver nenhuma declaração de variáveis na rotina dele, provavelmente tenha algumas já definidas em algum modulo Publico o que justificaria a não emissão desta mensagem, e pelas Call que tem nesta rotina vejo que é uma adaptação de outros modelos e por consequência faltou a ele observar melhor e ajustar a Variável em questão.
Eu sempre falo, é mais fácil começar um trabalho do inicio do que querer adaptar.

[]s

 
Postado : 27/05/2014 5:45 pm
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

então...

realmente eu não tinha declarado o inicio da rotina,

só q mesmo assim tenho erros...

vou abrir um novo tópico para passar outra situação que tenho.

 
Postado : 28/05/2014 8:34 am