ERRO INDEX - VBA
Galera, tenho um Listview no VBA, que carrega os dados, mas na hora de gravar esses dados em outra planilha da erro de Ãndex. O listview tem só duas colunas , ele ta puxando a segunda coluna como item de Ãndex numero 1.Mas eu preciso puxar também os dados da primeira coluna.Já coloquei como Ãndex : zero, um,..mas não grava.Dá Erro em Tempo de Execução’35600’ ‘Index out of bound’.Como fica a ordem correta de Ãndex????Segue um trecho do código...
Private Sub UserForm_Initialize()
TotalRegistros = Nomes.UsedRange.Rows.Count
TotalRegistros = Lancamentos.UsedRange.Rows.Count
Call PreencheLista
End Sub
Private Sub cmdGravar_Click()
With Lancamentos
TotalRegistros = Lancamentos.UsedRange.Rows.Count
[ô]TotalRegistros = Nomes.UsedRange.Rows.Count
LinhaPlanilha = TotalRegistros + 1
Dim y As Integer
y = LinhaPlanilha
For X = 1 To ListView1.ListItems.Count
.Cells(y, 2) = ListView1.ListItems(X).ListSubItems.Item(1) [ô]aqui puxa os nomes para col B, ok
.Cells(y, 1) = ListView1.ListItems(X).ListSubItems.Item(0) [ô]aqui da erro de [Ô]index out of bounds[Ô]
y = y + 1
Next X
End With
End Sub
Private Sub PreencheLista()
Dim startrow As Integer [ô]beginning of data
Dim endrow As Integer [ô]end of data
Dim pos As Integer [ô]rowno
Dim lv_item As Integer [ô]listview item no
Dim counting As Integer [ô]loopvariable to go through data
startrow = 2
endrow = xlLastRow([Ô]NOMES[Ô])
pos = 2
lv_item = 1
With ListView1
[ô]gives me headers at the top
.View = lvwReport
[ô]defining the columnheaders
[ô].Sorted = True
[ô].SortKey = 1
With .ColumnHeaders
.Clear
[ô].Add , , [Ô][Ô], 0
.Add , , [Ô]Matricula[Ô], 50
.Add , , [Ô]Nome[Ô], 180
End With
[ô].Sorted = True
[ô].SortKey = 1
.HideColumnHeaders = False
.Appearance = ccFlat
.FullRowSelect = True
.Gridlines = True
[ô].Sorted = True
[ô].SortKey = 1
For counting = startrow To endrow
.ListItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]B[Ô] & pos)
lv_item = lv_item + 1
pos = pos + 1
Next counting
End With
End Sub
Private Sub UserForm_Initialize()
TotalRegistros = Nomes.UsedRange.Rows.Count
TotalRegistros = Lancamentos.UsedRange.Rows.Count
Call PreencheLista
End Sub
Private Sub cmdGravar_Click()
With Lancamentos
TotalRegistros = Lancamentos.UsedRange.Rows.Count
[ô]TotalRegistros = Nomes.UsedRange.Rows.Count
LinhaPlanilha = TotalRegistros + 1
Dim y As Integer
y = LinhaPlanilha
For X = 1 To ListView1.ListItems.Count
.Cells(y, 2) = ListView1.ListItems(X).ListSubItems.Item(1) [ô]aqui puxa os nomes para col B, ok
.Cells(y, 1) = ListView1.ListItems(X).ListSubItems.Item(0) [ô]aqui da erro de [Ô]index out of bounds[Ô]
y = y + 1
Next X
End With
End Sub
Private Sub PreencheLista()
Dim startrow As Integer [ô]beginning of data
Dim endrow As Integer [ô]end of data
Dim pos As Integer [ô]rowno
Dim lv_item As Integer [ô]listview item no
Dim counting As Integer [ô]loopvariable to go through data
startrow = 2
endrow = xlLastRow([Ô]NOMES[Ô])
pos = 2
lv_item = 1
With ListView1
[ô]gives me headers at the top
.View = lvwReport
[ô]defining the columnheaders
[ô].Sorted = True
[ô].SortKey = 1
With .ColumnHeaders
.Clear
[ô].Add , , [Ô][Ô], 0
.Add , , [Ô]Matricula[Ô], 50
.Add , , [Ô]Nome[Ô], 180
End With
[ô].Sorted = True
[ô].SortKey = 1
.HideColumnHeaders = False
.Appearance = ccFlat
.FullRowSelect = True
.Gridlines = True
[ô].Sorted = True
[ô].SortKey = 1
For counting = startrow To endrow
.ListItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]B[Ô] & pos)
lv_item = lv_item + 1
pos = pos + 1
Next counting
End With
End Sub
Pessoal, descobri como contornar o erro.Segue:
.ListItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)[ô]SOMENTE INSERI ESSA LINHA E TUDO OK.
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]B[Ô] & pos)
lv_item = lv_item + 1
pos = pos + 1
Next counting
Valeu pela atenção de todos .Vou encerrar
.ListItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]A[Ô] & pos)[ô]SOMENTE INSERI ESSA LINHA E TUDO OK.
.ListItems(lv_item).ListSubItems.Add , , Worksheets([Ô]NOMES[Ô]).Range([Ô]B[Ô] & pos)
lv_item = lv_item + 1
pos = pos + 1
Next counting
Valeu pela atenção de todos .Vou encerrar
Tópico encerrado , respostas não são mais permitidas