Notifications
Clear all

erro em tempo de execução 35600 index out of bounds

7 Posts
3 Usuários
0 Reactions
2,432 Visualizações
(@geise)
Posts: 40
Eminent Member
Topic starter
 

Boa tarde

baixei este formulário aqui com o mesmo tema.
aparece este erro quando aparece mais de nove linhas no listview.
ele também não puxa o valor das duas primeiras linhas.

não estou conseguindo colocar a planilha com anexo.
o problema quando mando depurar o erro aparece a mesmo código do tópico, modifiquei no item ListSubItems de 4 para 2

Private Sub BtnObrigatorio_Click()

If TxtDia = "" Then
        geraRelatorioFarmaciaMensal vMes, TxtAno
        docTipo = "FARMACIA_" & UCase(ComboMês) & "_" & TxtAno
   
    End If

    Dim somaTotal As Double
    
    For a = 1 To ListView1.ListItems.Count
        [color=#FFFF00]somaTotal = somaTotal + Format(ListView1.ListItems(a).ListSubItems(2), "currency")[/color]
    Next
    
    TxtTotal = Format(somaTotal, "currency")

end sub

o tópico
viewtopic.php?f=10&t=25950&p=129685

estou anexando um print da tela

 
Postado : 07/04/2018 12:57 pm
(@klarc28)
Posts: 971
Prominent Member
 

Coloque antes:

on error resume next

https://www.youtube.com/results?search_query=vba+tratamento+de+erro

 
Postado : 07/04/2018 1:43 pm
(@geise)
Posts: 40
Eminent Member
Topic starter
 

foi resolvido uma das dúvidas.
como resolvo o problema de não esta puxando todos os outros valores da planilha?

 
Postado : 07/04/2018 7:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu particularmente não gosto de utilizar o tratamento de erro antes de determinar que tipo de erro ou quando o mesmo está ocorrendo.
"Index out of bounds" normalmente ocorre quando se refere a um item/subitem do list que não é encontrado.
No modelo mencionado, na determinação de range e utilizado UsedRange, provavelmente está ocorrendo algum erro ai,

UsedRange mesmo apos deletar os dados de uma linha continua considerando-a como parte utilizada da palnilha. Para evitar isso e necessario exluir a linha como um todo e salvar a planiha, para que a nova area utilizada seja considerada

Evite utilizar UsedRange para obter a ultima linha.

De preferencia a : Cells(Cells.Rows.Count, "A").End(xlUp).Row

Se persistir o erro disponibilize seu modelo, se o tamanho for superior a restrição existente que julgo muito infima, sugiro; apesar de não estar conforme os procedimentos do forum; que compartilhe em um site externo tipo Google drive e informe aqui o link

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/04/2018 5:57 am
(@geise)
Posts: 40
Eminent Member
Topic starter
 

Modifiquei o código e não funcionou.
aqui está o link com a planilha https://drive.google.com/open?id=1nQH8y ... 2vdiWXd-cB

 
Postado : 08/04/2018 8:48 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente, veja se atende
https://drive.google.com/open?id=1MoNvQUkdLVXoRJUv_L33YusVvkdfWtvC

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/04/2018 11:16 am
(@geise)
Posts: 40
Eminent Member
Topic starter
 

Obrigada
Agora esta funcionando perfeitamente

 
Postado : 08/04/2018 9:15 pm