Paki144
Super member
P.s. in spaziometria mi dà errore in questa riga:
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
Grazie
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
Attendibilità con La Formula By Luigi-50
Grazie al Forum e agli esperti Programmatori per l'aiuto che ci date sempre e per il vostro tempo che ci dedicate che non è da dare per scontato.Option Explicit
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri,cMaxRigo,sNum,bValida,qNum
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim t
Dim cIdRit,cIdRitMax,cIdFreq
Dim nFatte
Dim Parz
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
t = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
nFatte = Fin -(Ini)
For r = 1 To 12
If r <> 11 Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini,aN)
For k = Ini + 1 To Fin
'ReDim aTa(cMaxRigo,5)
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota Then
aN = 0
Else
aN = aN + 1
End If
'If aN <= cMaxRigo Then
' If aTa(aN,0) < 5 Then
' aTa(aN,0) = aTa(aN,0) + 1
' aTa(aN,aTa(aN,0)) = n
' End If
' End If
Next
'For nRit = 0 To cMaxRigo
' If aTa(nRit,0) > 0 Then
' nSfald = 0
' Call GetArrayNumeriRuota(k + 1,r,aNumRuota)
' aBNumRuota = ArrayNumeriToBool(aNumRuota)
' For e = 1 To aTa(nRit,0)
' If aBNumRuota(aTa(nRit,e)) Then
' nSfald = nSfald + 1
' Exit For
' End If
' Next
' If nSfald > 0 Then
' If aRitPerRigo(nRit,r,cIdRit) > aRitPerRigo(nRit,r,cIdRitMax) Then
' aRitPerRigo(nRit,r,cIdRitMax) = aRitPerRigo(nRit,r,cIdRit)
' End If
' aRitPerRigo(nRit,r,cIdRit) = 0
' aRitPerRigo(nRit,r,cIdFreq) = aRitPerRigo(nRit,r,cIdFreq) + 1
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Next
End If
Next
End If
Call AvanzamentoElab(1,12,r)
Next
ReDim aV(10)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
aV(8) = "QTeorica"
aV(9) = "QReale"
aV(10) = "Attendibilita"
Call GeneraAnaliticoTurbo(Fin)
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = Round(QuantitaTeoricaCombAlRitX(k),3)
aV(9) = qNum
aV(10) = Round(Dividi(qNum,(qNum + CDbl(aV(8)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2,,,100)
Scrivi Timer - t
End Sub
Grazie