Novità

Per tutti gli scriptisti

salvo50

Advanced Member >PLATINUM PLUS<
Ciao a Tutti!

Ho ridotto all'osso lo script delle permutazioni che si trova dentro la cartella test

Codice:
Option Explicit
Sub Main
	Dim COLONNE,Classe,SCOLONNA,K,J,X
	Dim NUMERI(5)
	Classe = 5
	For X = 1 To 5
		NUMERI(X) = X
	Next
	
		COLONNE = SviluppoPermutazioni(NUMERI,Classe)
		
		For K = 1 To UBound(COLONNE)
			SCOLONNA = ""
			For J = 1 To Classe
				SCOLONNA = SCOLONNA & Format2(COLONNE(K,J)) & " "
			Next
			Scrivi FormattaStringa(K,"000") & "....." & SCOLONNA
		Next
	
End Sub

In uscita ho le 120 permutazioni dei numeri da 1 a 5

Codice:
001.....01 02 03 04 05 
002.....01 02 03 05 04 
003.....01 02 04 03 05 
004.....01 02 04 05 03 
005.....01 02 05 03 04 
006.....01 02 05 04 03 
007.....01 03 02 04 05 
008.....01 03 02 05 04 
009.....01 03 04 02 05 
010.....01 03 04 05 02 
011.....01 03 05 02 04 
012.....01 03 05 04 02 
013.....01 04 02 03 05 
014.....01 04 02 05 03 
015.....01 04 03 02 05 
016.....01 04 03 05 02 
017.....01 04 05 02 03 
018.....01 04 05 03 02 
019.....01 05 02 03 04 
020.....01 05 02 04 03 
021.....01 05 03 02 04 
022.....01 05 03 04 02 
023.....01 05 04 02 03 
024.....01 05 04 03 02 
025.....02 01 03 04 05 
026.....02 01 03 05 04 
027.....02 01 04 03 05 
028.....02 01 04 05 03 
029.....02 01 05 03 04 
030.....02 01 05 04 03 
031.....02 03 01 04 05 
032.....02 03 01 05 04 
033.....02 03 04 01 05 
034.....02 03 04 05 01 
035.....02 03 05 01 04 
036.....02 03 05 04 01 
037.....02 04 01 03 05 
038.....02 04 01 05 03 
039.....02 04 03 01 05 
040.....02 04 03 05 01 
041.....02 04 05 01 03 
042.....02 04 05 03 01 
043.....02 05 01 03 04 
044.....02 05 01 04 03 
045.....02 05 03 01 04 
046.....02 05 03 04 01 
047.....02 05 04 01 03 
048.....02 05 04 03 01 
049.....03 01 02 04 05 
050.....03 01 02 05 04 
051.....03 01 04 02 05 
052.....03 01 04 05 02 
053.....03 01 05 02 04 
054.....03 01 05 04 02 
055.....03 02 01 04 05 
056.....03 02 01 05 04 
057.....03 02 04 01 05 
058.....03 02 04 05 01 
059.....03 02 05 01 04 
060.....03 02 05 04 01 
061.....03 04 01 02 05 
062.....03 04 01 05 02 
063.....03 04 02 01 05 
064.....03 04 02 05 01 
065.....03 04 05 01 02 
066.....03 04 05 02 01 
067.....03 05 01 02 04 
068.....03 05 01 04 02 
069.....03 05 02 01 04 
070.....03 05 02 04 01 
071.....03 05 04 01 02 
072.....03 05 04 02 01 
073.....04 01 02 03 05 
074.....04 01 02 05 03 
075.....04 01 03 02 05 
076.....04 01 03 05 02 
077.....04 01 05 02 03 
078.....04 01 05 03 02 
079.....04 02 01 03 05 
080.....04 02 01 05 03 
081.....04 02 03 01 05 
082.....04 02 03 05 01 
083.....04 02 05 01 03 
084.....04 02 05 03 01 
085.....04 03 01 02 05 
086.....04 03 01 05 02 
087.....04 03 02 01 05 
088.....04 03 02 05 01 
089.....04 03 05 01 02 
090.....04 03 05 02 01 
091.....04 05 01 02 03 
092.....04 05 01 03 02 
093.....04 05 02 01 03 
094.....04 05 02 03 01 
095.....04 05 03 01 02 
096.....04 05 03 02 01 
097.....05 01 02 03 04 
098.....05 01 02 04 03 
099.....05 01 03 02 04 
100.....05 01 03 04 02 
101.....05 01 04 02 03 
102.....05 01 04 03 02 
103.....05 02 01 03 04 
104.....05 02 01 04 03 
105.....05 02 03 01 04 
106.....05 02 03 04 01 
107.....05 02 04 01 03 
108.....05 02 04 03 01 
109.....05 03 01 02 04 
110.....05 03 01 04 02 
111.....05 03 02 01 04 
112.....05 03 02 04 01 
113.....05 03 04 01 02 
114.....05 03 04 02 01 
115.....05 04 01 02 03 
116.....05 04 01 03 02 
117.....05 04 02 01 03 
118.....05 04 02 03 01 
119.....05 04 03 01 02 
120.....05 04 03 02 01

Adesso mi servirebbe avere ogni numero separato per conto suo, allora ho pensato di modificarlo così


Codice:
Option Explicit
Sub Main
	Dim A(120),B(600)
	Dim COLONNE,Classe,SCOLONNA,K,J,X
	Dim NUMERI(5)
	Classe = 5
	For X = 1 To 5
		NUMERI(X) = X
	Next
	
		COLONNE = SviluppoPermutazioni(NUMERI,Classe)
		
		For K = 1 To UBound(COLONNE)
			SCOLONNA = ""
			For J = 1 To Classe
				SCOLONNA = SCOLONNA & Format2(COLONNE(K,J)) & " "
			Next
			'Scrivi FormattaStringa(K,"000") & "....." & SCOLONNA
		
		If K = 1 Then : A(1) = SCOLONNA : Scrivi A(1)
		If K = 2 Then : A(2) = SCOLONNA : Scrivi A(2)

		Next
	
End Sub

Ed in uscita ho le prime due permutazioni

Ho fatto solo due - IF THEN - prima di farle tutte e 120, ho provato e in uscita ho le prime due permutazioni

01 02 03 04 05
01 02 03 05 04

Per poter moltiplicare ogni numero per un tot valore penso che ogni numero deve avere la sua variabile, se dovesse essere così, non so come estrapolare i 5 numeri dalle variabili A(1) e A(2) ecc...

esempio per poter fare queste operazioni, che al posto dei numeri 1-2-3-4-5 e 1-2-3-5-4 ci dovrebbero essere le variabili estrapolate

B(1) = Fuori90 1 * 15
B(2) = Fuori90 2 * 14
B(3) = Fuori90 3 * 13
B(4) = Fuori90 4 * 12
B(5) = Fuori90 5 * 11

B(6) = Fuori90 1 * 15
B(7) = Fuori90 2 * 14
B(8) = Fuori90 3 * 13
B(9) = Fuori90 5 * 12
B(10) = Fuori90 4 * 11

Grazie!
 

Mike58

Advanced Member >PLATINUM PLUS<
salvo giusto per distrarmi un pochetto, prova questa soluzione.

Codice:
Option Explicit
Sub Main
	Dim A(120),B(600),Aa(5)
	Dim COLONNE,Classe,SCOLONNA,K,J,X
	Dim NUMERI(5),acol,scol
	Classe = 5
	For X = 1 To 5
		NUMERI(X) = X
		Aa(1) = Fuori90(NUMERI(1)*15)
		Aa(2) = Fuori90(NUMERI(2)*14)
		Aa(3) = Fuori90(NUMERI(3)*13)
		Aa(4) = Fuori90(NUMERI(4)*12)
		Aa(5) = Fuori90(NUMERI(5)*11)
	Next
	COLONNE = SviluppoPermutazioni(NUMERI,Classe)
	acol = SviluppoPermutazioni(Aa,Classe)
	For K = 1 To UBound(COLONNE)
		SCOLONNA = ""
		scol = ""
		For J = 1 To Classe
			SCOLONNA = SCOLONNA & Format2(COLONNE(K,J)) & " "
			scol = scol & Format2(acol(K,J)) & " "
		Next
		Scrivi FormattaStringa(K,"000") & "....." & SCOLONNA & vbTab,1,0
		Scrivi scol,1,,,1,2
	Next
End Sub
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao Mike

Grazie della risposta, ma purtroppo la tua modifica non fa quello che mi serve, mi spiego con un esempio.
Questa è una delle 120 permutazioni che moltiplico per quei numeri già noti

1
2
3
4
5

1 * 15
2 * 14
3 * 13
4 * 12
5 * 11

un'altra permutazione a caso

5
3
4
1
2

e questo è quello che lo script deve fare

5 * 15
3 * 14
4 * 13
1 * 12
2 * 11

invece questo è quello che fa tua modifica, lo faccio con le stesse permutazioni

1 * 15
2 * 14
3 * 13
4 * 12
5 * 11

5
3
4
1
2


5 * 11
3 * 13
4 * 12
1 * 15
2 * 14

cioè qualsiasi numero indifferentemente di quale posizione occupa lo moltiplica sempre per lo stesso numero, invece quello che serve a me è che se un numero qualsiasi dei cinque numeri cambia posizione deve cambiare anche il numero della moltiplicazione.

Poi una volta ottenuti le 120 permutazioni dopo le dovute moltiplicazioni, con queste 120 cinquine ottenute devo fare una ricerca, per vedere se escono, forse fare gli esempi con i primi 5 numeri è confusionario. Ti posto lo script come l'avevo studiato, prendendo i 5 numeri da permutare dalla tavola settenaria.

Codice:
Option Explicit
Sub Main
	
	Dim COLONNE,Classe,T,SCOLONNA,K,J,X,poste(5),RUOTE,fin,Ini,es
	Dim NUMERI(5)
	Classe = 5

Dim a(5),b(5),c(5),d(5),e(5)
Dim idestrazione,ruota,clp,r1,K1
es = InputBox("Inserisci numero estrazione",idestrazione,8900)
r1 = InputBox("Inserisci numero ruota ( 1 - 10)",ruota,6)
fin = EstrazioneFin
Ini = EstrazioneFin '- 1
poste(4) = 1
poste(5) = 1
Scrivi(" Estrazione n." & Format2(es) & 	" del " & DataEstrazione(es)),0,0
Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(es,r1)
Scrivi ""
a(1) = Estratto(es,r1,1)
a(2) = Estratto(es,r1,2)
a(3) = Estratto(es,r1,3)
a(4) = Estratto(es,r1,4)
a(5) = Estratto(es,r1,5)

For K1 = 1 To 5
b(K1) = Fuori90(a(K1)* 13)
c(K1) =(91 - b(K1))
d(K1) = Fuori90(a(K1)* 7)
e(K1) =(91 - a(K1))

Scrivi("Quadrettino settenaria Nr.") & "" & Format2(a(K1)) & "--> " & Format2(b(K1)),0,0
Scrivi" " & Format2(c(K1)) & " " & Format2(a(K1)) & " " & Format2(d(K1)) & " " & Format2(e(K1))
Next
Scrivi

NUMERI(1) = a(1)
NUMERI(2) = b(1)
NUMERI(3) = c(1)
NUMERI(4) = d(1)
NUMERI(5) = e(1)
		
		COLONNE = SviluppoPermutazioni(NUMERI,Classe)
		 		
		For K = 1 To UBound(COLONNE)

			SCOLONNA = ""
			For J = 1 To Classe
				SCOLONNA = SCOLONNA & Format2(COLONNE(K,J)) & " "
			
			Next
			Scrivi FormattaStringa(K,"000") & "....." & SCOLONNA
					
				Next
				
		
End Sub

Faccio scegliere il numero dell'estrazione e la ruota, poi per adesso solo con il primo numero dell'estrazione lo calcolo come il numero centrale di un quadrettino della tavola settenaria e calcolo gli altri numeri dello stesso quadrettino e questi sono i 5 numeri ai quali faro fare le 120 permutazione, cioè 120 permutazioni per ogni numero estratto, però per questo avevo pensato di fare 5 script diversi uno per ogni numero. Le cinquine ottenute in questo script si devono ancora moltiplicare per i numeri 15-14-13-12-11.

Se non si può fare, io avevo pensato ad altre soluzioni però non so come applicarle, mi spiego una volta ottenute le 120 permutazioni finali (non lo so se è fattibile) trasformarli in matrice in modo che poi per fare le ricerche di ogni cinquina gli do le coordinate della matrice.
 

AlphaBeta

Super member
Salvo...posso farti una domanda? in pratica se non ho capito male con un massimo di 600 combinazioni...potresti riuscire a trovare la cinquina?
Ovviamente ho usato il condizionale...in quanto come ben sappiamo nel lotto...niente è certo...
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao Alphabeta

Non lo so, anni fa questo calcolo per una volta l'avevo fatto con carta penna e calcolatrice e cercando a vista non avevo trovato riscontri, se potessi farlo con uno script che in pochi minuti mi controlla centinaia di estrazioni sarebbe un'altra cosa, è una mia idea di come interpretare la tavola settenaria, secondo me (se la tavola settenaria serve per trovare i futuri estraendi) molti calcoli non hanno riscontri perchè non sappiamo dei 5 numeri di un qualsiasi quadrettino qualè il primo secondo terzo ecc. volevo fare lo script anche per vedere dove ci saranno dei riscontri (se ci saranno) in qualè sequenza sono in questo modo si può restringere il sistema, perchè ho calcolato che giocando 600 bollette da euro 1,5 ad estrazione per non andare in perdita minimo si devono fare 6 quaterne l'anno, per la cinquina non c'è problema, anche una ogni 10 anni va bene. Poi una volta fatto lo script le moltiplicazioni possono diventare addizioni sottrazioni ecc i numeri da aggiungere sottrare ecc. si possono cambiare.
 
Ultima modifica:

surmang

Super Member >PLATINUM<
Questa è una delle 120 permutazioni che moltiplico per quei numeri già noti

1
2
3
4
5

1 * 15
2 * 14
3 * 13
4 * 12
5 * 11

un'altra permutazione a caso

5
3
4
1
2

e questo è quello che lo script deve fare

5 * 15
3 * 14
4 * 13
1 * 12
2 * 11

Ciao a Tutti.:)

Ciao Salvo, non sono uno scripter , ho fatto qualche prova per conoscere meglio la funzione SviluppoPermutazioni .
Vedi se lo script che segue può risultarti utile.





Codice:
Option Explicit
Sub Main
	Dim aPermut,cls,nRig,nCol,k
	Dim aCol(8)
	cls = CInt(InputBox("Inserire la classe ",,5))
	For k = 1 To cls
		aCol(k) = k
	Next
	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 1 To UBound(aPermut)
		For nCol = 1 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 1))
			aNC(nCol) = Fuori90(aNumeri(nCol)*aCostanti(nCol))
		Next
		Scrivi FormatSpace(nRig,4) & Space(3) & StringaNumeri(aNumeri,,True) & Space(5) & StringaNumeri(aCostanti,,True) & Space(5) & StringaNumeri((aNC),,True) & " ",0,1
	Next
End Sub
 
Ultima modifica:

salvo50

Advanced Member >PLATINUM PLUS<
Ciao!

L'ho provato e va bene, adesso devo vedere come fare a cambiare i numeri da 1 a 5 con i quadrettini della tavola settenaria, che volendo si possono usare anche direttamente i 5 numeri estratti oppure le virtù di ogni numero che secondo me sono i complementi a 90 dei numeri estratti, oppure qualsiasi gruppo di 5 numeri, poi devo vedere come fare per le ricerche.

Grazie
 
Ultima modifica:

salvo50

Advanced Member >PLATINUM PLUS<
Ciao a Tutti!

Alla soluzione di Surmang dovevo agganciare i 5 numeri di un quadrettino della tavola settenaria e poi con l'ultimo risultato fare una ricerca delle 120 cinquine, sono partito con il presupposto che doveva essere una passeggiata agganciare i 5 numeri e poi tribulare per fare la ricerca delle 120 cinquine, non ne azzecco una, la ricerca delle 120 cinquine l'ho fatta e funziona, ma non riesco a mettere al posto dei numeri 1,2,3,4,5 i cinque numeri del quadretto della settenaria A1,B1,C1,D1,E1, ecco lo script

Codice:
	Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,k,ruota,poste(5),clp
	Dim aCol(8),idestr,Es,r1,x,Ini,fin,ruote,k1
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 2
	Es = InputBox("Inserisci numero estrazione",idestr,8900)
r1 = InputBox("Inserisci numero ruota ( 1 - 10)",ruota,6)
fin = EstrazioneFin
Ini = EstrazioneFin - 2
poste(4) = 1
poste(5) = 0.5
 

Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
Scrivi ""
A1 = Estratto(Es,r1,1)
B1 = Fuori90(A1 * 13)
C1 =(91 - B1)
D1 = Fuori90(A1 * 7)
E1 =(91 - A1)
	
'inserire A1,B1,C1,D1,E1, al posto di 1,2,3,4,5	
	
	
	For k = 1 To cls
		aCol(k) = k
	Next
	

	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 1 To UBound(aPermut)
		Messaggio nRig
		For nCol = 1 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 1))
			aNC(nCol) = Fuori90(aNumeri(nCol)*aCostanti(nCol))
		
If nCol = 1 Then A(nRig) = aNC(nCol)
If nCol = 2 Then B(nRig) = aNC(nCol)
If nCol = 3 Then C(nRig) = aNC(nCol)
If nCol = 4 Then D(nRig) = aNC(nCol)
If nCol = 5 Then E(nRig) = aNC(nCol)

		Next
		
ruote = Array(0,r1)
	num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))
ImpostaGiocata nRig,num(nRig),ruote,poste,clp,0,0
Gioca Es
Next	
	
	ScriviResoconto
End Sub

Grazie
 
Ultima modifica:

Ouroboros

Senior Member
Ciao a tutti!

Se non ho capito male dovresti inserire il valore di A1,B1,C1,D1,E1, al posto di 1,2,3,4,5

For k = 1 To cls
aCol(k) = k
Next

Personalmente eliminerei il ciclo e sciverei:

aCol(1) = A1
aCol(2) = B1
aCol(3) = C1
aCol(4) = D1
aCol(5) = E1

Ciao.
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao a Tutti!

Ho finito lo script, però quando nell'estrazione ho il numero 15 o un suo multiplo, lo script va in errore e si blocca tutto, allora avevo pensato di fargli saltare i calcoli quando ci sono questi numeri, per come ho fatto lo script qualsiasi numero va nella variabile A1, quindi mi serve un - IF THEN - che faccia questa condizione

Se ho i numeri 15 o 30 o 45 o 60 o 75 o 90 deve saltare tutti i calcoli ed apparire un messaggio, io l'ho fatto così solo per il numero 45

IF A1 <> 45 THEN

calcoli...................

ELSE
MsgBox" Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
END IF

è funziona, però non sò come inserire gli altri numeri 15, 30, 60, 75, 90 l'avevo fatto con l'operatore - OR - ma mi da sempre errore, mi potete aiutare?

Grazie
 

Ouroboros

Senior Member
Ciao a tutti!

Strano questo errore: un numero dovrebbe valere l'altro.

Prova a ripostare lo script, inserendo la ruota e l'estrazione che da' errore, che provo a dare un'occhiata.

Ciao.
 
M

Membro cancellato 16574

Guest
Buongiorno,
scusate l' intromissione ,provi questo listato.
Codice:
Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,k,ruota,poste(05),clp
	Dim aCol(8),idestr,Es,r1,x,Ini,fin,ruote,k1
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 2
	Es = InputBox("Inserisci numero estrazione",idestr,8900)
	r1 = ScegliRuota
	fin = EstrazioneFin
	Ini = EstrazioneFin - 2
	poste(04) = 1
	poste(05) = 0.5
	Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
	Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
	Scrivi ""
	A1 = Estratto(Es,r1,01)
	If A1 <> 15 Or A1 <> 30 Or A1 <> 45 Or A1 <> 60 Or A1 <> 75 Or A1 <> 90 Then
		B1 = Fuori90(A1 * 13)
		C1 =(91 - B1)
		D1 = Fuori90(A1 * 07)
		E1 =(91 - A1)
	Else
		MsgBox" Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
	End If
	'inserire A1,B1,C1,D1,E1, al posto di 1,2,3,4,5
	aCol(1) = A1
	aCol(2) = B1
	aCol(3) = C1
	aCol(4) = D1
	aCol(5) = E1
	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 01 To UBound(aPermut)
		Messaggio nRig
		AvanzamentoElab 01,UBound(aPermut),nRig
		For nCol = 01 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 01))
			aNC(nCol) = Fuori90(aNumeri(nCol)*aCostanti(nCol))
			If nCol = 01 Then A(nRig) = aNC(nCol)
			If nCol = 02 Then B(nRig) = aNC(nCol)
			If nCol = 03 Then C(nRig) = aNC(nCol)
			If nCol = 04 Then D(nRig) = aNC(nCol)
			If nCol = 05 Then E(nRig) = aNC(nCol)
		Next
		ruote = Array(0,r1)
		num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))
		ImpostaGiocata nRig,num(nRig),ruote,poste,clp,0,0
		Gioca Es
	Next
	ScriviResoconto
End Sub
 

avio

Senior Member
Ciao a Tutti!

Ho finito lo script, però quando nell'estrazione ho il numero 15 o un suo multiplo, lo script va in errore e si blocca tutto, allora avevo pensato di fargli saltare i calcoli quando ci sono questi numeri, per come ho fatto lo script qualsiasi numero va nella variabile A1, quindi mi serve un - IF THEN - che faccia questa condizione

Se ho i numeri 15 o 30 o 45 o 60 o 75 o 90 deve saltare tutti i calcoli ed apparire un messaggio, io l'ho fatto così solo per il numero 45

IF A1 <> 45 THEN

calcoli...................

ELSE
MsgBox" Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
END IF

è funziona, però non sò come inserire gli altri numeri 15, 30, 60, 75, 90 l'avevo fatto con l'operatore - OR - ma mi da sempre errore, mi potete aiutare?

Grazie

ciao

se guardi la settenaria quella con le 90 tavole sono numeri che hanno 3 numeri uguali ...in totale su 5 numeri ne ha solo 2 ... credo il problema sia nei numeri ripetuti
 

salvo50

Advanced Member >PLATINUM PLUS<
Per Ouroboros

Io penso che vada in errore con quei numeri perchè nella tavola settenaria nei quadrettini che hanno per centrale i numeri 15-30-45-60-75-90 ci sono numeri 3 uguali + 2 numeri uguali, non sono andato a vedere se le estrazioni che vanno in errore hanno quei numeri, me lo sono immaginato, per il momento ho provato solo 2 estrazioni la 8900 e la 8901 per tutte le ruote e nella 8900 mi va in errore con Cagliari e Roma invece nella 8901 mi va in errore con Milano, Napoli e Venezia, ti posto lo script, chiedo scusa ho corretto non è Bari ma Cagliari nella 8900

Codice:
	Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,ruota,poste(5),clp
	Dim aCol(8),idestr,Es,r1,ruote,pos
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 1
	Es = InputBox("Inserisci numero estrazione",idestr,8901)
r1 = InputBox("Inserisci numero ruota ( 1 - 10)",ruota,6)

poste(3) = 0.4
poste(4) = 0.4
poste(5) = 0.2

Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
Scrivi ""
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE 1"
ColoreTesto 0

For pos = 1 To 5
Messaggio pos

A1 = Estratto(Es,r1,pos)
'If A1 <> 45 Then  
B1 = Fuori90(A1 * 13)
C1 =(91 - B1)
D1 = Fuori90(A1 * 7)
E1 =(91 - A1)
	
aCol(1) = A1
aCol(2) = B1
aCol(3) = C1
aCol(4) = D1
aCol(5) = E1

	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 1 To UBound(aPermut)
		
		For nCol = 1 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 1))
			
			aNC(nCol) = Fuori90(aNumeri(nCol) * aCostanti(nCol))
		

If nCol = 1 Then A(nRig) = aNC(nCol)
If nCol = 2 Then B(nRig) = aNC(nCol)
If nCol = 3 Then C(nRig) = aNC(nCol)
If nCol = 4 Then D(nRig) = aNC(nCol)
If nCol = 5 Then E(nRig) = aNC(nCol)

		Next
		
ruote = Array(0,r1)
num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))

EliminaRipetuti num(nRig)
ImpostaGiocata nRig,num(nRig),ruote,poste,clp,2,0
Gioca Es
Next	
If pos < 5 Then
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE" & " " &(pos + 1)
ColoreTesto 0
Else
End If
'Else
'MsgBox"  Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
'End If
Next	
	ScriviResoconto
End Sub


Per Magia grazie, era quello che volevo sapere io l' - IF then - lo scrivevo cosi - IF A1 <> 15 or 30 or 45 ecc e quindi mi dava sempre errore, adesso mi è successo una cosa strana proprio da magia, ho preso la riga scritta da te con i numeri da 15 a 90 copia e incolla e l'ho messa al posto della riga - IF A1 <> 45 then - e funzionava tutto bene poi gli ho fatto la spunta per vedere di nuovo l'errore e mi dava errore, ho tolto la spunta e continua a darmi errore, non è possibile prima funzionava boh... ti posto lo script

Codice:
	Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,ruota,poste(5),clp
	Dim aCol(8),idestr,Es,r1,ruote,pos
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 1
	Es = InputBox("Inserisci numero estrazione",idestr,8901)
r1 = InputBox("Inserisci numero ruota ( 1 - 10)",ruota,6)

poste(3) = 0.4
poste(4) = 0.4
poste(5) = 0.2

Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
Scrivi ""
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE 1"
ColoreTesto 0

For pos = 1 To 5
Messaggio pos

A1 = Estratto(Es,r1,pos)
If A1 <> 15 Or A1 <> 30 Or A1 <> 45 Or A1 <> 60 Or A1 <> 75 Or A1 <> 90 Then
B1 = Fuori90(A1 * 13)
C1 =(91 - B1)
D1 = Fuori90(A1 * 7)
E1 =(91 - A1)
	
aCol(1) = A1
aCol(2) = B1
aCol(3) = C1
aCol(4) = D1
aCol(5) = E1

	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 1 To UBound(aPermut)
		
		For nCol = 1 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 1))
			
			aNC(nCol) = Fuori90(aNumeri(nCol) * aCostanti(nCol))
		

If nCol = 1 Then A(nRig) = aNC(nCol)
If nCol = 2 Then B(nRig) = aNC(nCol)
If nCol = 3 Then C(nRig) = aNC(nCol)
If nCol = 4 Then D(nRig) = aNC(nCol)
If nCol = 5 Then E(nRig) = aNC(nCol)

		Next
		
ruote = Array(0,r1)
num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))

EliminaRipetuti num(nRig)
ImpostaGiocata nRig,num(nRig),ruote,poste,clp,2,0
Gioca Es
Next	
If pos < 5 Then
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE" & " " &(pos + 1)
ColoreTesto 0
Else
End If
Else
MsgBox"  Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
End If
Next	
	ScriviResoconto
End Sub

Ciao a Tutti!
 
Ultima modifica:

avio

Senior Member
ciao


prova a usare questo

dim AA1(5)

AA1(1)=A1:AA1(2)=B1:AA1(3)=C1:AA1(4)=D1:AA1(5)=E1
EliminaRipetuti AA1
If AA1(5)<>0 Then
 

salvo50

Advanced Member >PLATINUM PLUS<
Per Magia, mi sa che ho confuso lucciole con lanterne non può essere che funzionava prima e dopo non ha funzionato, allora ho provato quello postato da te ed anche quello da errore mettendo estrazione 8900 ruota milano, siccome mi sono accorto che è il quarto numero che da errore gli ho inserito nello script il 4 numero e da errore ecco lo script

Codice:
Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,k,ruota,poste(05),clp
	Dim aCol(8),idestr,Es,r1,x,Ini,fin,ruote,k1
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 2
	Es = InputBox("Inserisci numero estrazione",idestr,8900)
	r1 = ScegliRuota
	fin = EstrazioneFin
	Ini = EstrazioneFin - 2
	poste(04) = 1
	poste(05) = 0.5
	Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
	Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
	Scrivi ""
	A1 = Estratto(Es,r1,04)
	If A1 <> 15 Or A1 <> 30 Or A1 <> 45 Or A1 <> 60 Or A1 <> 75 Or A1 <> 90 Then
		B1 = Fuori90(A1 * 13)
		C1 =(91 - B1)
		D1 = Fuori90(A1 * 07)
		E1 =(91 - A1)
	Else
		MsgBox" Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
	End If
	'inserire A1,B1,C1,D1,E1, al posto di 1,2,3,4,5
	aCol(1) = A1
	aCol(2) = B1
	aCol(3) = C1
	aCol(4) = D1
	aCol(5) = E1
	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 01 To UBound(aPermut)
		Messaggio nRig
		AvanzamentoElab 01,UBound(aPermut),nRig
		For nCol = 01 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 01))
			aNC(nCol) = Fuori90(aNumeri(nCol)*aCostanti(nCol))
			If nCol = 01 Then A(nRig) = aNC(nCol)
			If nCol = 02 Then B(nRig) = aNC(nCol)
			If nCol = 03 Then C(nRig) = aNC(nCol)
			If nCol = 04 Then D(nRig) = aNC(nCol)
			If nCol = 05 Then E(nRig) = aNC(nCol)
		Next
		ruote = Array(0,r1)
		num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))
		ImpostaGiocata nRig,num(nRig),ruote,poste,clp,0,0
		Gioca Es
	Next
	ScriviResoconto
End Sub

devi fare la prova con l'estrazione 8900 e ruota Milano


Per Avio dopo AA1(5) dove lo devo inserire, potresti postare la modifica completa nello script che ho postato a Ouroboros, grazie
 

salvo50

Advanced Member >PLATINUM PLUS<
Così funziona

Codice:
	Option Explicit
Sub Main
	Dim A(120),B(120),C(120),D(120),E(120),num(120)
	Dim aPermut,cls,nRig,nCol,ruota,poste(5),clp
	Dim aCol(8),idestr,Es,r1,ruote,pos
	Dim A1,B1,C1,D1,E1
	cls = 5
	clp = 1
	Es = InputBox("Inserisci numero estrazione",idestr,8901)
r1 = InputBox("Inserisci numero ruota ( 1 - 10)",ruota,6)

poste(3) = 0.4
poste(4) = 0.4
poste(5) = 0.2
 
Scrivi(" Estrazione n." & Format2(Es) & 	" del " & DataEstrazione(Es)),0,0
Scrivi "  " & Left(NomeRuota(r1),2) & " " & StringaEstratti(Es,r1)
Scrivi ""
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE 1"
ColoreTesto 0

For pos = 1 To 5
Messaggio pos

A1 = Estratto(Es,r1,pos)
If A1 <> 15 Then
If A1 <> 30 Then
If A1 <> 45 Then
If A1 <> 60 Then
If A1 <> 75 Then
If A1 <> 90 Then

B1 = Fuori90(A1 * 13)
C1 =(91 - B1)
D1 = Fuori90(A1 * 7)
E1 =(91 - A1)
	
aCol(1) = A1
aCol(2) = B1
aCol(3) = C1
aCol(4) = D1
aCol(5) = E1

	aPermut = SviluppoPermutazioni(aCol,cls)
	ReDim aNumeri(cls),aCostanti(cls),aNC(cls)
	For nRig = 1 To UBound(aPermut)
		
		For nCol = 1 To cls
			aNumeri(nCol) = aPermut(nRig,nCol)
			aCostanti(nCol) =(15 -(nCol - 1))
			
			aNC(nCol) = Fuori90(aNumeri(nCol) * aCostanti(nCol))
		

If nCol = 1 Then A(nRig) = aNC(nCol)
If nCol = 2 Then B(nRig) = aNC(nCol)
If nCol = 3 Then C(nRig) = aNC(nCol)
If nCol = 4 Then D(nRig) = aNC(nCol)
If nCol = 5 Then E(nRig) = aNC(nCol)

		Next
		
ruote = Array(0,r1)
num(nRig) = Array(0,(A(nRig)),(B(nRig)),(C(nRig)),(D(nRig)),(E(nRig)))

EliminaRipetuti num(nRig)
ImpostaGiocata nRig,num(nRig),ruote,poste,clp,2,0
Gioca Es
Next	
If pos < 5 Then
ColoreTesto 2
Scrivi "********************************************************************************************************** NUMERO ESTRATTO POSIZIONE" & " " &(pos + 1)
ColoreTesto 0
Else
End If
Else
MsgBox"  Il numero è uguale a 15 o un suo multiplo, sviluppo non possibile"
End If
End If
End If
End If
End If
End If

Next	
	ScriviResoconto
End Sub
 

Joe91

Advanced Member >PLATINUM PLUS<
Ciao,

Se posso ti consiglio ... Mod

Codice:
Option Explicit 

Sub Main
Dim X
	For X = 1 To 90
		If X Mod 15 <> 0 Then
			Scrivi X
		Else
			Scrivi X & " non va bene"
		End If
	Next
End Sub
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 maggio 2024
    Bari
    71
    67
    47
    25
    88
    Cagliari
    24
    54
    06
    42
    02
    Firenze
    12
    33
    75
    30
    68
    Genova
    51
    70
    74
    37
    73
    Milano
    50
    81
    15
    25
    71
    Napoli
    58
    54
    43
    63
    52
    Palermo
    50
    80
    31
    04
    67
    Roma
    26
    57
    85
    89
    05
    Torino
    18
    07
    82
    14
    78
    Venezia
    54
    49
    86
    34
    28
    Nazionale
    51
    07
    24
    90
    75
    Estrazione Simbolotto
    Milano
    43
    23
    31
    10
    01

Ultimi Messaggi

Alto