Antonio Pagano
Super member
Salvo buongiorno vorrei tanto che mi correggessi questo script come segue:
Ultima estrazione vorrei i 10 ambi derivati che si vanno a formare con i 5 estratti per uno studio personale. Fiducioso in un tuo aiuto ti ringrazio anticipatamente.
Option Explicit
Sub Main
Dim FIn,Ini,A,B,C,D,Clp,Es,Salvo50,Sp,Ok
Dim R1,R2,P1,P2,P3,P4,P5,P6,P7,P8,P9,E1,E2
Dim Ava,Ind,Es2,Es3,Caso,Casi,X,G,K
Dim SoAB,DiAB,DeA,DeB,DeC,DeD,CaA,CaB,CaC,CaD
Dim SoAD,SoBC,SoDeAD,SoDeBC,SoCaAD,SoCaBC
Dim Amba(1),Ambo(2),Num(4)
Dim Ruo(2),Ruote(3),Po1(1),Po2(2)
FIn = EstrazioneFin
Ini = CInt(InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,1000))
Clp = CInt(InputBox(" Per quanti colpi vuoi giocare?",Salvo50,10))
'Ind = CInt(InputBox(" Quante estrazioni a ritroso per cercare l'ambo Derivato?",Salvo50,5))
Ava = CInt(InputBox(" Quante estrazioni avanti per cercare l'ambo Derivato?",Salvo50,10))
Call ScegliRange(Ini,FIn,Ini,FIn)
Scrivi Space(5) & "La Diagonale Infallibile - solo Ruota di Calcolo - A. Longo - Script Salvo50" & Space(5),1,,4,,3,,1
Po1(1) = 1
Po2(2) = 1
Sp = " "
For Es = Ini To FIn
Messaggio Es
AvanzamentoElab Ini,FIn,Es
Caso = 0
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es - Ind + 1)
For Es2 = Es - 1 To Es3 Step - 1
R2 = R1
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'C---D
'| |
'A---B
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 1
Else
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 2 Then X = SoAD
If Ok = 1 Then X = SoBC
Amba(1) = B '
Num(1) = X : Num(2) = A : Num(3) = C : Num(4) = D
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato a Ritroso per max " & Ind & " Estrazioni",1,,,2
Scrivi
Scrivi Space(35) & Format2(B) & " Ambata",1
If Ok = 1 Then
Scrivi Space(35) & Format2(SoBC) & " Abbinamento 1 = " & Format2(B) & " + " & Format2(C),1
End If
If Ok = 2 Then
Scrivi Space(35) & Format2(SoAD) & " Abbinamento 1 = " & Format2(A) & " + " & Format2(D),1
End If
Scrivi Space(35) & Format2(A) & " Abbinamento 2",1
Scrivi Space(35) & Format2(C) & " Abbinamento 3",1
Scrivi Space(35) & Format2(D) & " Abbinamento 4",1
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 : Ruote(3) = TU_
EliminaRipetuti Num
G = 1
ImpostaGiocata G,Amba,Ruo,Po1,Clp
For K = 1 To UBound(Num)
If Amba(1) <> Num(K)Then
Ambo(1) = Amba(1): Ambo(2) = Num(K)
If Ambo(2) > 0 Then
G = G + 1
ImpostaGiocata G,Ambo,Ruote,Po2,Clp,,,2
End If
End If
Next
Gioca Es,,,1
End If
End If
End If
End If
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es + Ava + 1)
If Es3 > FIn Then Es3 = FIn
For Es2 = Es + 1 To Es3
R2 = R1
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'A---B
'| |
'C---D
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 1
Else
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 1 Then X = SoAD
If Ok = 2 Then X = SoBC
Amba(1) = D
Num(1) = X : Num(2) = A : Num(3) = B : Num(4) = C
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato in Avanti per max " & Ava & " Estrazioni",1,,,2
Scrivi
Scrivi Space(35) & Format2(D) & " Ambata",1
If Ok = 1 Then
Scrivi Space(35) & Format2(SoAD) & " Abbinamento 1 = " & Format2(A) & " + " & Format2(D),1
End If
If Ok = 2 Then
Scrivi Space(35) & Format2(SoBC) & " Abbinamento 1 = " & Format2(B) & " + " & Format2(C),1
End If
Scrivi Space(35) & Format2(A) & " Abbinamento 2",1
Scrivi Space(35) & Format2(B) & " Abbinamento 3",1
Scrivi Space(35) & Format2(C) & " Abbinamento 4",1
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 ': Ruote(3) = TU_
EliminaRipetuti Num
G = 1
ImpostaGiocata G,Amba,Ruo,Po1,Clp
For K = 1 To UBound(Num)
If Amba(1) <> Num(K)Then
Ambo(1) = Amba(1): Ambo(2) = Num(K)
If Ambo(2) > 0 Then
G = G + 1
ImpostaGiocata G,Ambo,Ruote,Po2,Clp,,,2
End If
End If
Next
Gioca Es,,,1
End If
End If
End If
End If
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
Next
ScriviResoconto
End Sub
Ultima estrazione vorrei i 10 ambi derivati che si vanno a formare con i 5 estratti per uno studio personale. Fiducioso in un tuo aiuto ti ringrazio anticipatamente.
Option Explicit
Sub Main
Dim FIn,Ini,A,B,C,D,Clp,Es,Salvo50,Sp,Ok
Dim R1,R2,P1,P2,P3,P4,P5,P6,P7,P8,P9,E1,E2
Dim Ava,Ind,Es2,Es3,Caso,Casi,X,G,K
Dim SoAB,DiAB,DeA,DeB,DeC,DeD,CaA,CaB,CaC,CaD
Dim SoAD,SoBC,SoDeAD,SoDeBC,SoCaAD,SoCaBC
Dim Amba(1),Ambo(2),Num(4)
Dim Ruo(2),Ruote(3),Po1(1),Po2(2)
FIn = EstrazioneFin
Ini = CInt(InputBox("Inserisci l'estrazione che vuoi iniziare",Salvo50,1000))
Clp = CInt(InputBox(" Per quanti colpi vuoi giocare?",Salvo50,10))
'Ind = CInt(InputBox(" Quante estrazioni a ritroso per cercare l'ambo Derivato?",Salvo50,5))
Ava = CInt(InputBox(" Quante estrazioni avanti per cercare l'ambo Derivato?",Salvo50,10))
Call ScegliRange(Ini,FIn,Ini,FIn)
Scrivi Space(5) & "La Diagonale Infallibile - solo Ruota di Calcolo - A. Longo - Script Salvo50" & Space(5),1,,4,,3,,1
Po1(1) = 1
Po2(2) = 1
Sp = " "
For Es = Ini To FIn
Messaggio Es
AvanzamentoElab Ini,FIn,Es
Caso = 0
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es - Ind + 1)
For Es2 = Es - 1 To Es3 Step - 1
R2 = R1
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'C---D
'| |
'A---B
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 1
Else
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 2 Then X = SoAD
If Ok = 1 Then X = SoBC
Amba(1) = B '
Num(1) = X : Num(2) = A : Num(3) = C : Num(4) = D
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato a Ritroso per max " & Ind & " Estrazioni",1,,,2
Scrivi
Scrivi Space(35) & Format2(B) & " Ambata",1
If Ok = 1 Then
Scrivi Space(35) & Format2(SoBC) & " Abbinamento 1 = " & Format2(B) & " + " & Format2(C),1
End If
If Ok = 2 Then
Scrivi Space(35) & Format2(SoAD) & " Abbinamento 1 = " & Format2(A) & " + " & Format2(D),1
End If
Scrivi Space(35) & Format2(A) & " Abbinamento 2",1
Scrivi Space(35) & Format2(C) & " Abbinamento 3",1
Scrivi Space(35) & Format2(D) & " Abbinamento 4",1
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 : Ruote(3) = TU_
EliminaRipetuti Num
G = 1
ImpostaGiocata G,Amba,Ruo,Po1,Clp
For K = 1 To UBound(Num)
If Amba(1) <> Num(K)Then
Ambo(1) = Amba(1): Ambo(2) = Num(K)
If Ambo(2) > 0 Then
G = G + 1
ImpostaGiocata G,Ambo,Ruote,Po2,Clp,,,2
End If
End If
Next
Gioca Es,,,1
End If
End If
End If
End If
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
For R1 = 1 To 12
If R1 = 11 Then R1 = 12
For P1 = 1 To 4
P2 = P1 + 1
A = Estratto(Es,R1,P1)
B = Estratto(Es,R1,P2)
SoAB = Fuori90(A + B)
DiAB = Differenza(A,B)
Es3 = CInt(Es + Ava + 1)
If Es3 > FIn Then Es3 = FIn
For Es2 = Es + 1 To Es3
R2 = R1
For P3 = 1 To 4
For P4 = P3 + 1 To 5
If Differenza(P3,P4) < 3 Then
C = Estratto(Es2,R2,P3)
D = Estratto(Es2,R2,P4)
If A > 0 And C > 0 And A <> C And A <> D And B <> C And B <> D Then
If(C = SoAB And D = DiAB) Or(D = SoAB And C = DiAB) Then
'A---B
'| |
'C---D
DeA = Decina(A) : CaA = Cadenza(A)
DeB = Decina(B) : CaB = Cadenza(B)
DeC = Decina(C) : CaC = Cadenza(C)
DeD = Decina(D) : CaD = Cadenza(D)
SoDeAD = DeA + DeD : SoCaAD = CaA + CaD
SoDeBC = DeB + DeC : SoCaBC = CaB + CaC
Ok = 0
If SoDeAD <= 9 And SoCaAD <= 9 Then
SoAD = Fuori90(A + D)
Ok = 1
Else
If SoDeBC <= 9 And SoCaBC <= 9 Then
SoBC = Fuori90(B + C)
Ok = 2
End If
End If
If Ok = 1 Or Ok = 2 Then
If Ok = 1 Then X = SoAD
If Ok = 2 Then X = SoBC
Amba(1) = D
Num(1) = X : Num(2) = A : Num(3) = B : Num(4) = C
Caso = Caso + 1
Casi = Casi + 1
Scrivi String(89,"*") & " Casi Totali " & FormattaStringa(Casi,"0000"),1,,,2
Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
Scrivi " " & SiglaRuota(R1) & " ",1,0
For P7 = 1 To 5
E1 = Estratto(Es,R1,P7)
If E1 = A Or E1 = B Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E1) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Base ",1,,,1
Scrivi(" Estrazione n." & Format2(Es2) & " del " & DataEstrazione(Es2)),1,0
Scrivi " " & SiglaRuota(R2) & " ",1,0
For P8 = 1 To 5
E2 = Estratto(Es2,R2,P8)
If E2 = C Or E2 = D Then
ColoreTesto 2
Else
ColoreTesto 0
End If
Scrivi Format2(E2) & " ",1,0
ColoreTesto 0
Next
Scrivi " <-- Evidenziati Ambo Derivato ",1,,,1
Scrivi "Ambi in quadro",1,,,1
Scrivi Space(3) & Format2(A) & Sp & Format2(B),1,0,,2
Scrivi Space(16) & Format2(A) & " + " & Format2(B) & " = " & Format2(SoAB),1,0
Scrivi " 1° elemento Ambo Derivato ",1,,,1
Scrivi Space(3) & Format2(C) & Sp & Format2(D),1,0,,2
Scrivi Space(12) & "Abs " & Format2(A) & " - " & Format2(B) & " = " & Format2(DiAB),1,0
Scrivi " 2° elemento Ambo Derivato ",1,,,1
Scrivi Space(15) & " Ricerca ambo derivato in Avanti per max " & Ava & " Estrazioni",1,,,2
Scrivi
Scrivi Space(35) & Format2(D) & " Ambata",1
If Ok = 1 Then
Scrivi Space(35) & Format2(SoAD) & " Abbinamento 1 = " & Format2(A) & " + " & Format2(D),1
End If
If Ok = 2 Then
Scrivi Space(35) & Format2(SoBC) & " Abbinamento 1 = " & Format2(B) & " + " & Format2(C),1
End If
Scrivi Space(35) & Format2(A) & " Abbinamento 2",1
Scrivi Space(35) & Format2(B) & " Abbinamento 3",1
Scrivi Space(35) & Format2(C) & " Abbinamento 4",1
Scrivi
Ruo(1) = R1 : Ruo(2) = R2
Ruote(1) = R1 : Ruote(2) = R2 ': Ruote(3) = TU_
EliminaRipetuti Num
G = 1
ImpostaGiocata G,Amba,Ruo,Po1,Clp
For K = 1 To UBound(Num)
If Amba(1) <> Num(K)Then
Ambo(1) = Amba(1): Ambo(2) = Num(K)
If Ambo(2) > 0 Then
G = G + 1
ImpostaGiocata G,Ambo,Ruote,Po2,Clp,,,2
End If
End If
Next
Gioca Es,,,1
End If
End If
End If
End If
Next
Next
Next
Next
If ScriptInterrotto Then Exit Sub
Next
Next
ScriviResoconto
End Sub