AJUDA VB6 E MATRIZES

GABRIELROD 10/08/2010 18:18:40
#349919
Fala galera to com um probleminha e estou precisando de uma ajuda de vocês!
Situação:

O meu programa ele lê campos de uma planilha excel. Imaginem uma planilha assim:

nºEvent | Quantidade
29 1
31 1
42 1
4 2
29 1
11 1
31 1
31 1
32 1
50 3
11 1
11 1
11 4
11 1


terei 2 strings 1ª para ler nº Evento e 2ª Quantidade. Como podemos reparar temos tipos de eventos iguais, por exemplo o [Ô]11[Ô] , e cada evento temos uma quantidade, que no caso é uma quantidade de reclamacoes do tipo [Ô]11[Ô], por exemplo. Preciso que no final eu tenha a soma de todas as quantidades de reclamacõs de cada tipo entendem?

Vocês poderiam me ajudar nessa? Obrigado!!
GABRIELROD 11/08/2010 22:04:50
#350032
Desculpa cara, mas você poderia me explicar melhor como eu usar isto dentro do vb6 e consegui o que eu quero, pois não intendi direito o que ele fez ali, pois usou o excel e eu precisaria de usar o VB6.

Obrigado!
GERARDA 13/08/2010 20:19:58
#350223
num sei se entendi direito
mas vc pode declarar uma variavel
dim numerodoevento(0 to totaldeeventos) as double

e quando entrar o valor para aquele evento vc soma

numerodoevento(eventoatual) = numerodoevento(eventoatual) + valor

depois no final vc pode mostrar em um listbox
dim listano as double

for listano= 0 to totaldeeventos

listbox.additem [Ô]evento [Ô] & listano & [Ô] total [Ô] & numerodoevento(listano)

next

acho que a logica é essa mas ce vc postar parte de seu codigo a resposta pode ser mais especifica




GABRIELROD 26/08/2010 18:20:30
#351416
Aew pessoal vou colar aqui a solução:

Public Sub ReadDetailedRejection()

On Error GoTo Trata_Erro

[ô]Declara as Variaveis
Dim x As Integer [ô]variavel do For
Dim t As Integer [ô]variavel do for
Dim specification As Integer [ô]variavel que recebe a quantidade de rejeitados
Dim numberCauseRejection As Integer [ô]variavel que recebe o numer da rejeicao
Dim eventType As String
[ô]Dimensiona a matriz
ReDim plusTotalRejection(sizeMatriz, 1)

endLine = ws.Cells(lineLengthFile, columnLengthFile).Text

[ô]Faz a leitura dos campos no Excel
For x = lineRejection To endLine Step 1
eventType = Trim(ws.Cells(x, eventTypeColumn).Value)

If (UCase$(eventType) = [Ô]D[Ô]) Then

numberCauseRejection = ws.Cells(x, numberColumn).Value
specification = ws.Cells(x, specificationColumn).Value
[ô]Chama a funcao VerificaMatriz
VerificaMatriz numberCauseRejection, specification

End If

Next x

For t = 0 To endLine Step 1

If (plusTotalRejection(t, 0) <> Empty) Then

WriteFileTeste [Ô]rejeicaoDetalhada[Ô], Empty, Empty, Empty, Empty, Empty, CStr(plusTotalRejection(t, 0)), CStr(plusTotalRejection(t, 1))

End If

Next t

Trata_Erro:

If Err.Number > 0 Then
WriteFileLog [Ô]Ocorreu um erro na Rejeicao Detalhada.[Ô], [Ô]ERROR[Ô], Err.Description
FormInicial.tb_FormInicial.Text = FormInicial.tb_FormInicial.Text & vbCrLf & [Ô]ERROR: [Ô] + [Ô]Informacao: Ocorreu um erro na Rejeicao Detalhada. [Ô] + [Ô]Mensagem: [Ô] + Err.Description
Resume Next
End If

End Sub

[ô]---------------------------------------------------------------------------------------
[ô] Procedimento....: LerExcel
[ô] DateTime........: 26/08/2010
[ô] Desenvolvido por: Gabriel
[ô] Descrição.......: Verifica se na matriz da rejeicao detalhada existe algum codigo repetido, se houver ela soma a quantidade deles
[ô]---------------------------------------------------------------------------------------

Public Function MatrizNotes(code As Integer, amount As Integer)

On Error GoTo Trata_Erro

Dim i As Integer

For i = 0 To endLineRejection Step 1
[ô]Se o codigo da matriz no atual indice for vazio seta a o codigo e a quantidade recebida nos campos
If (plusTotalRejection(i, 0) = Empty) Then

plusTotalRejection(i, 0) = code
plusTotalRejection(i, 1) = amount
Exit Function

[ô]Verifica se o codigo da matriz e igual ao codigo recebido
ElseIf (plusTotalRejection(i, 0) = code) Then

plusTotalRejection(i, 1) = plusTotalRejection(i, 1) + amount
Exit Function

End If

Next i

Trata_Erro:

If Err.Number > 0 Then
WriteFileLog [Ô]Ocorreu um erro no calculo da RejeicaoDetalhada[Ô], [Ô]ERROR[Ô], Err.Description
FormInicial.tb_FormInicial.Text = FormInicial.tb_FormInicial.Text & vbCrLf & [Ô]ERROR: [Ô] + [Ô]Informacao: Ocorreu um erro na leitura do turno atual. [Ô] + [Ô]Mensagem: [Ô] + Err.Description
Resume Next
End If

End Function
Tópico encerrado , respostas não são mais permitidas