Option Explicit
Sub Main()
 'https://forum.lottoced.com/threads/spaziometria-formazioni-multiple.2193770/page-2#post-2231788
 '0901_27 Rosanna Biambi in figura, con maggior ritardo
 'Tradotto ed adattato per Spazionmetria calcola Biambi in Differenza
 '       V.3.1 del 07/04/2020 By Joe
 '       Aggiunto calcolo Biambo a Tutte
 'Riferimenti statistici agg. al 21/03/2020:
 'Ro_ Diff 40 Biambo 19.59 ; 50.90 rit. 2522
 'Ve_ Diff 60 Biambo 17.77 ; 23.83 rit. 2424
 'Pa_ Diff 12 Biambo 35.47 ; 50.62 rit. 2440
 'Ba_ Diff 15 Biambo 18.33 ; 50.65 rit. 2413
 Dim B,C,D,I,J,R,X,Y,Z
 Dim Biambo(2,2),Ru(1),Nu(2),Es,Rit1,Rit2,Q
 D = CInt(InputBox("Quale vuoi ?","DIFFERENZA nei BIAMBI",40))
 X = CInt(InputBox("Quanti ne vuoi visualizzare ?","QUANTITA' BIAMBI",10))
 Q = CInt(InputBox("Quanti ne vuoi visualizzare ?","ULTIMI RITARDI",10))
 Scrivi Space(10) & " RIEPILOGO BIAMBI IN DISTANZA " & D & " CON MAGGIOR RITARDO " & Chr(10),1
 ReDim ambi(90 - D,2)
 Es = EstrazioneFin
 ReDim Ris(Q)
 '---------------------------- SELEZIONO GLI AMBI DELLA DISTANZA DESIDERATA
 For I = 1 To 89
  For Y = I + 1 To 90
   If Abs(I - Y) = D Then
    C = C + 1
    ambi(C,1) = I
    ambi(C,2) = Y
   End If
  Next ' Y
 Next ' I
 Scrivi Space(8) & "- Biambo - Rit.C ",1,0
 For R = 2 To Q : Scrivi R & "°Rit ",1,0 : Next : Scrivi
 '---------------------------- SCORRO LE RUOTE
 For R = 1 To 12
  Ru(1) = R
  AvanzamentoElab 1,12,R
  '-----------------------------------AZZERAMENTO / PREPARAZIONE VARIABILI
  B = 0 :
  ReDim Stat(C*(C - 1)/2,5) ' --------DIMENSIONE DINAMICA COMBINAZIONI
  If X > C*(C - 1) / 2 Then X = C*(C - 1)/ 2 'RIDUCE N° FORMAZIONI/ERRORI
  '---------------------------------------- CREO I BIAMBI
  For I = 1 To(90 - D - 1)
   For J = I + 1 To(90 - D)
    '-------------- PROCEDO COL MEMORIZZARLI SULLA MATRICE STAT
    '-------------- CALCOLO DEL RITARDO (MINIMO/ATTUALE)
    B = B + 1
    Stat(B,1) = ambi(I,1)
    Stat(B,2) = ambi(I,2)
    Stat(B,3) = ambi(J,1)
    Stat(B,4) = ambi(J,2)
    Biambo(1,1) = ambi(I,1)
    Biambo(1,2) = ambi(I,2)
    Biambo(2,1) = ambi(J,1)
    Biambo(2,2) = ambi(J,2)
    Call Elenco_Ritardi(Es,R,ambi(I,1),ambi(I,2),ambi(J,1),ambi(J,2),1,Ris)
    Stat(B,5) = Ris(1)
   Next ' I
  Next ' J
  Scrivi Space(4) & SiglaRuota(R) & " " & String(11 + 6*Q,"-"),1
  OrdinaMatrice Stat,- 1,5 '----------- ORDINO DECRESCENTE STAT SULLA COLONNA RITARDO
  For I = 1 To X '--------------------- SCRIVO IN OUTPUT SOLO I BIAMBI DESIDERATI
   Scrivi Space(7) & Format2(Stat(I,1)) & "." & Format2(Stat(I,2)) & ";",0,0
   Scrivi Format2(Stat(I,3)) & "." & Format2(Stat(I,4)),0,0
   Call Elenco_Ritardi(Es,R,Stat(I,1),Stat(I,2),Stat(I,3),Stat(I,4),Q,Ris)
   For Z = 1 To Q
    If Ris(Z) < 0 Then Ris(Z) = 0 ': ColoreTesto 2
    Scrivi FormatSpace(Ris(Z),6,True),0,0 ': ColoreTesto 0
   Next : Scrivi' Z
  Next ' I
 Next ' chiude r
End Sub
Sub Elenco_Ritardi(Es,R,A,B,C,D,Q,Ris)
 ReDim Ris(Q)
 Dim E,K,Rit,F,T,Rk,Rmin,Rmax
 Rmin = 1 : Rmax = 10
 If R <> 11 Then Rmin = R : Rmax = R
 For E = Es To 1 Step - 1
  Rit = Rit + 1
  T = 1
  For Rk = Rmin To Rmax
   If SommaEstratti(E,Rk) = 0 Then E = 1 : Exit For
   F = False
   If Posizione(E,Rk,A) > 0 And Posizione(E,Rk,B) Then F = True
   If Posizione(E,Rk,C) > 0 And Posizione(E,Rk,D) Then F = True
   If F = True Then
    K = K + T : T = 0
    Ris(K) = Rit - 1
    Rit = 0
   End If
  Next
  If K >= Q Then Exit For
 Next
End Sub