edesimone
Advanced Member >PLATINUM<
Un saluto Luigi
Mi serve il tuo aiuto per una modifica di uno script:
Option Explicit
Sub Main
Dim nClasse
Dim nGaranzia
Dim k,j
Dim sNumeri
Dim idComb
Dim nInizio,nFine
Dim idValoreDaAna
Dim sValoreUsato
Dim CombTot
ReDim aCombMigliori(100,4)
nClasse = ScegliClasse
nGaranzia = ScegliGaranzia
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)
nInizio = EstrazioneIni
nFine = EstrazioneFin
If nClasse > 0 And nGaranzia > 0 And nGaranzia <= nClasse And idValoreDaAna > 0 Then
Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
CombTot = InitSviluppaComb(nClasse)
Call Messaggio("Statistica combinazioni in corso ")
ReDim aCol(nClasse)
Do While GetCombSviluppo(aCol) = True
Call AnalisiComb(aCol,nGaranzia,aCombMigliori,nInizio,nFine,idValoreDaAna)
k = k + 1
If k Mod 20 = 0 Then
Call Messaggio("Statistica combinazioni in corso " & k & " di " & CombTot)
Call AvanzamentoElab(1,CombTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Call Messaggio("")
ReDim aTitoli(4)
aTitoli(1) = "Combinazione"
aTitoli(2) = "Frequenza"
aTitoli(3) = "Ritardo"
aTitoli(4) = "RitardoMax"
Call Scrivi("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia)
Call Scrivi("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato)
Call Scrivi("Range analizzato " & GetInfoEstrazioneDL(nInizio) & " fino a " & GetInfoEstrazioneDL(nFine))
Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
Call Scrivi
Call InitTabella(aTitoli)
For k = 1 To UBound(aCombMigliori)
ReDim ADati(4)
ADati(1) = aCombMigliori(k,4)
ADati(2) = aCombMigliori(k,1)
ADati(3) = aCombMigliori(k,2)
ADati(4) = aCombMigliori(k,3)
Call AddRigaTabella(ADati)
Next
Call CreaTabella
Else
MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime 100 Combinazioni "
End If
End Sub
Sub AnalisiComb(aNum,Garanzia,aCombMig,nInizio,nFine,idValoreDaAna)
Dim k,j
Dim Rit
Dim RitMax
Dim Freq
Dim Valore
Call StatisticaFormazioneDL(aNum,Garanzia,Rit,RitMax,0,Freq,nInizio,nFine)
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To UBound(aCombMig)
If Valore >= aCombMig(k,0) Then
For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)
Next
aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = StringaNumeri(aNum)
Exit For
End If
Next
End Sub
Function InitSviluppaComb(Classe)
Dim k
ReDim aNum(90)
For k = 1 To 90
aNum(k) = k
Next
InitSviluppaComb = InitSviluppoIntegrale(aNum,Classe)
End Function
Function ScegliClasse()
ReDim aVoci(4)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"
ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function
Function ScegliGaranzia()
ReDim aVoci(4)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"
ScegliGaranzia = ScegliOpzioneMenu(aVoci,2,"Secegli garanzia") + 1
End Function
Function ScegliValoreDaAnalizzare(sValore)
ReDim aVoci(2)
Dim i
aVoci(0) = "Frequenza"
aVoci(1) = "Ritardo"
aVoci(2) = "Ritardo massimo"
i = ScegliOpzioneMenu(aVoci,0,"Quale valore considerare per l'ordinamento ? ")
s
Mi serve il tuo aiuto per una modifica di uno script:
Option Explicit
Sub Main
Dim nClasse
Dim nGaranzia
Dim k,j
Dim sNumeri
Dim idComb
Dim nInizio,nFine
Dim idValoreDaAna
Dim sValoreUsato
Dim CombTot
ReDim aCombMigliori(100,4)
nClasse = ScegliClasse
nGaranzia = ScegliGaranzia
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)
nInizio = EstrazioneIni
nFine = EstrazioneFin
If nClasse > 0 And nGaranzia > 0 And nGaranzia <= nClasse And idValoreDaAna > 0 Then
Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
CombTot = InitSviluppaComb(nClasse)
Call Messaggio("Statistica combinazioni in corso ")
ReDim aCol(nClasse)
Do While GetCombSviluppo(aCol) = True
Call AnalisiComb(aCol,nGaranzia,aCombMigliori,nInizio,nFine,idValoreDaAna)
k = k + 1
If k Mod 20 = 0 Then
Call Messaggio("Statistica combinazioni in corso " & k & " di " & CombTot)
Call AvanzamentoElab(1,CombTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Call Messaggio("")
ReDim aTitoli(4)
aTitoli(1) = "Combinazione"
aTitoli(2) = "Frequenza"
aTitoli(3) = "Ritardo"
aTitoli(4) = "RitardoMax"
Call Scrivi("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia)
Call Scrivi("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato)
Call Scrivi("Range analizzato " & GetInfoEstrazioneDL(nInizio) & " fino a " & GetInfoEstrazioneDL(nFine))
Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
Call Scrivi
Call InitTabella(aTitoli)
For k = 1 To UBound(aCombMigliori)
ReDim ADati(4)
ADati(1) = aCombMigliori(k,4)
ADati(2) = aCombMigliori(k,1)
ADati(3) = aCombMigliori(k,2)
ADati(4) = aCombMigliori(k,3)
Call AddRigaTabella(ADati)
Next
Call CreaTabella
Else
MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime 100 Combinazioni "
End If
End Sub
Sub AnalisiComb(aNum,Garanzia,aCombMig,nInizio,nFine,idValoreDaAna)
Dim k,j
Dim Rit
Dim RitMax
Dim Freq
Dim Valore
Call StatisticaFormazioneDL(aNum,Garanzia,Rit,RitMax,0,Freq,nInizio,nFine)
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To UBound(aCombMig)
If Valore >= aCombMig(k,0) Then
For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)
Next
aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = StringaNumeri(aNum)
Exit For
End If
Next
End Sub
Function InitSviluppaComb(Classe)
Dim k
ReDim aNum(90)
For k = 1 To 90
aNum(k) = k
Next
InitSviluppaComb = InitSviluppoIntegrale(aNum,Classe)
End Function
Function ScegliClasse()
ReDim aVoci(4)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"
ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function
Function ScegliGaranzia()
ReDim aVoci(4)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"
ScegliGaranzia = ScegliOpzioneMenu(aVoci,2,"Secegli garanzia") + 1
End Function
Function ScegliValoreDaAnalizzare(sValore)
ReDim aVoci(2)
Dim i
aVoci(0) = "Frequenza"
aVoci(1) = "Ritardo"
aVoci(2) = "Ritardo massimo"
i = ScegliOpzioneMenu(aVoci,0,"Quale valore considerare per l'ordinamento ? ")
s