Reabri o tópico devido a msg em PVT :
Boa noite Mauro!
Desculpa te chamar no particular, mas me surgiu uma dificuldade sobre o preenchimento da listbox que me ajudaste. Está funcionando muito bem tendo 2 ou mais dados na planilha, porém, se excluir da planilha deixando apenas 1 talhão e 1 hectare da erro e o excel trava, teria como me ajudar com mais essa?
Schramm, o erro se dá devido eu não ter feito nenhum tratamento quanto a qde de itens, fiz e não tstei, e mesmo que não tenha nenhum dado tambem teremos o erro.
Explicando o porque do erro :
Como temos a instrução : Set Rng = .Range("Q1", .Range("Q1").End(xlDown)), ela define o Range iniciando em Q1, e na linha : For Each cell In Rng.Cells é preenchido o listbox, só que, se tivermos somente dados na linha 2 ou se não tivermos, o Range será definido de "Q1" até a última linha da planilha.
Então para evitarmos futuros problemas, troque a rotina pela a abaixo, veja que nesta eu não coloquei instrução para preencher os Labels com o cabeçalho, pois, já que será sempre o mesmo, é só definir o caption de cada um direto na propriedade.
Private Sub UserForm_Initialize()
Dim UltimaLinha, i As Integer
ListBox1.ColumnCount = 2
ListBox1.Clear
UltimaLinha = Sheets("BD_Lavoura").Cells(Cells.Rows.Count, 17).End(xlUp).Row
If UltimaLinha <= 1 Then Exit Sub
For i = 2 To UltimaLinha
With Me.ListBox1
.AddItem Sheets("BD_Lavoura").Range("Q" & i).Value
.List(ListBox1.ListCount - 1, 1) = Sheets("BD_Lavoura").Range("R" & i).Value
End With
Next
End Sub
Faça os testes e veja se agora está correto.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 28/03/2016 6:24 pm