VBA EXCEL - LIMPAR FORM

ALANTB 26/04/2012 09:20:16
#400793
Oi pessoa, tenho esse código que carrega SETORES, LOCAIS, ESTADOS e suas respectivas CIDADES.Só que ao LIMPAR o formulário da um erro e para tudo. Segue o código e comentário na linha que ocorre o seguinte erro:[Ô]Erro em tempo de execução [ô]381[ô]. Não foi posivel obter a propriedade List.Indice de matriz de propriedade inválido[Ô]. Parei aqui,....Como contornar esse erro????

Private Sub cmdLimpar_Click()

LimpaForm

End Sub
---------------------
Sub LimpaForm()

LinhaPlanilha = 0

TxtCod.Value = [Ô][Ô]
Me.txtCel.Text = [Ô][Ô]
Me.txtTel.Text = [Ô][Ô]
lblNome.Caption = [Ô][Ô]
Me.ComboBox_Cidade.Clear
Me.ComboBox_Local.ListIndex = -1
Me.ComboBox_Nomes.ListIndex = -1
Me.ComboBox_Setor.ListIndex = -1
Me.ComboBox_UF.Clear

End Sub
----------------------------------------------
Private Sub UserForm_Initialize()

TotalRegistros = Setor.UsedRange.Rows.Count
TotalRegistros = Centro.UsedRange.Rows.Count
TotalRegistros = Nomes.UsedRange.Rows.Count
TotalRegistros = Cidade.UsedRange.Rows.Count
TotalRegistros = Estado.UsedRange.Rows.Count

AtualizaCombobox_nomes
AtualizaCombobox_Local
AtualizaCombobox_Setor

Call CarregaUF

End Sub
--------------------------------------------------
Private Sub CarregaUF()
Dim linha As Integer, coluna As Integer
linha = 2
coluna = 2
Me.ComboBox_UF.Clear
With Sheets([Ô]Estado[Ô])
Do While Not IsEmpty(.Cells(linha, coluna))
Me.ComboBox_UF.AddItem .Cells(linha, coluna).Value
linha = linha + 1
Loop
End With
Exit Sub
End Sub
------------------------------------------------------
Private Sub ComboBox_UF_Change()

Call CarregaCidades(Me.ComboBox_UF.List(Me.ComboBox_UF.ListIndex)) [ô] O ERRO APONTA NESSA LINHA

End Sub
--------------------------------------------------------------------
Private Sub CarregaCidades(ByVal Categoria As String)
Dim linha As Integer, colunaCidade As Integer, colunaUF As Integer
linha = 2
colunaCidade = 3
colunaUF = 2
Me.ComboBox_Cidade.Clear
With Sheets([Ô]Cidade[Ô])
Do While Not IsEmpty(.Cells(linha, colunaCidade))
If .Cells(linha, colunaUF).Value = Categoria Then
Me.ComboBox_Cidade.AddItem .Cells(linha, colunaCidade).Value
End If
linha = linha + 1
Loop
End With
End Sub
ALANTB 26/04/2012 11:28:28
#400820
Acho que apos executar o comando LIMPAR, o combo UF perde a propriedade LIST e provavelmente não carrega os ESTADOS. Como LIMPAR formulário e restaurar ao ponto inicial???
ALANTB 26/04/2012 14:25:07
#400844
Gente, tô desde ontem nesse LIMPAR e não sai do lugar ainda.Já fiz milhares de alterações e nada, portanto segue o arquivo para os colegas espiarem...Segue...
FILMAN 26/04/2012 16:37:19
#400858
Resposta escolhida
Bom acrescente essa linha na função LIMPAFORM
If Me.ComboBox_Cidade.Enabled Then Me.ComboBox_Cidade.Enabled = False


Mude o evento change do COMBO_UF para esse abaixo
If Me.ComboBox_UF.ListIndex > -1 Then
Call CarregaCidades(Me.ComboBox_UF.List(Me.ComboBox_UF.ListIndex))
Me.ComboBox_Cidade.Enabled = True
End If


E Mude a propriedade do COMBO_CIDADE para
ENABLED=FALSE
ALANTB 26/04/2012 16:58:37
#400862
FILMAN, fechou todas.Inclusive com o código acima me surgiu novas idéias para seguir adiante, valeu. Vou encerrar....
Tópico encerrado , respostas não são mais permitidas