Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ambi con ritardo superiore a....

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Ambi con ritardo superiore a....

Postdi papiriof » 20/06/16 18:35

Codice: Seleziona tutto
 Sub Trovambi()
Dim VArr 'è la variabile che contraddistingue l'archivio
Dim i As Integer, J As Integer, M As Integer, n As Integer
'"M" è = da 1 a 90---- "N" è = a "M" + 1 ma sempre fino a 90 (sono i 2 elementi dell'ambo)
Dim Ctr As Integer, Ambi As Integer, LastR As Long
'
TargAm = [ar1] 'Nella cella AR1 metto il numero di Ambi che voglio trovare
Range("AQ4:AS2000").Clear 'pulisce l'intervallo dove si piazzeranno gli ambi trovati che abbiano le caratteristiche
'giuste cioè  siano usciti in un numero uguale di quello indicato nella cella "ar1" TargAm = [ar1]
LastR = Cells(Rows.Count, 2).End(xlUp).Row
VArr = Range("i3:z" & LastR).Value ' " i3 " è la cella d'inizio " z " è l'ultima cella dell'archivio,cioè 18 colonne  & LastR  fino all'ultima riga(variabile)
aaaa = UBound(VArr, 1)
For M = 1 To 90 ' "M" è il primo elemento dell'ambo
   ' Application.ScreenUpdating = False
    For n = M + 1 To 90 ' "N" è il secondo elemento dell'ambo
        Ambi = 0 'per adesso gli ambi sono ZERO
        For i = 1 To UBound(VArr, 1)
            Ctr = 0
            For c = 1 To 18 '
                If VArr(i, c) = M Then Ctr = Ctr + 1
                If VArr(i, c) = n Then Ctr = Ctr + 1
            Next c
            If Ctr >= 2 Then Ambi = Ambi + 1
        Next i
        If Ambi > TargAm Then 'se "Ambi" è in un numero maggiore di quello indicato nella cella "Ar1" TargAm = [Ar1] Allora....
            NRow = Cells(Rows.Count, "AS").End(xlUp).Offset(1, 0).Row
            Cells(NRow, "AQ") = M: Cells(NRow, "AR") = n: Cells(NRow, "AS") = Ambi
            End If
    Next n
   ' Application.ScreenUpdating = True
Next M
End Sub

Ho questa macro che mi fece anni nel 2011 Anthony, nel corso degl'anni l'ho leggermente modificata fino ad oggi. Cosa fa è presto detto : Trova gli ambi che nell'ambito
dell'archivio (Che può essere di num di righe variabile) che abbiano la caratteristica di essere usciti in un num di volte che io indico nella cella "AR1" e me li fa
vedere a partire da Range("AQ4:AS2000") in questo modo in AQ4 il primo num dell'ambo in AR4 il secondo num e in AS4 il num di volte che è è uscito.
Se non chiedo troppo ora vorrei fare un'altra macro che facesse un lavoro simile, fermo restante le coordinate dell'archivio, ovvero mi trovasse si gli ambi, ma invece delle "volte" che è
uscito trovasse il "ritardo in atto" che deve essere(il ritardo) > di quello che io indico nella cella AR1
Ringrazio fin d'ora chi volesse aiutarmi
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Sponsor
 

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 21/06/16 01:12

Se hai un file con la struttura e i dati gia' pronto allora pubblicalo, il lavoro sara' abbastanza facilitato.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 21/06/16 08:31

Niente , non riesco neanche a mandare un immagine ,copio un'immagine che ho creato su pait ma all'atto di incollarlo qui ..non è attivo incolla eppure l'ho fatto altre volte ... Bo :?:
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi papiriof » 21/06/16 14:22

non so se si vede tutto
Immagine
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 22/06/16 00:33

Se hai un file di prova condividilo, non farlo intravedere e basta.
Oppure attendi qualcuno che ha tempo di crearselo prima di cominciare a pensare alla macro da sviluppare...

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 22/06/16 08:39

mi dispiace Anthony,sto riempendo di prove il desktop,per inviare almeno un immagine che si capisca ma non ci riesco ,eppure in passato ci sono riuscito qui trovo solo la possibilità di trasferire il "Code" , "List","List=", "[*]", "Img" e "URL"!!
Comunque la macro di cui al primo punto trova il numero degli ambi che sono usciti il num di " VOLTE " >di quello indicato nella cella "Ar1" vedi il particolare del codice:
[code] If Ambi > TargAm Then 'se "Ambi" è in un numero maggiore di quello indicato nella cella "Ar1" TargAm = [Ar1] Allora....
NRow = Cells(Rows.Count, "AS").End(xlUp).Offset(1, 0).Row
Cells(NRow, "AQ") = M: Cells(NRow, "AR") = n: Cells(NRow, "AS") = Ambi
End If [code]
Ebbene io chiedo che questa seconda macro mi trovi tutti quegl' ambi che superano il "RITARDO" (quindi un nuovo elemento da incastonare)di quello indicato nella cella "Ar1"
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 23/06/16 00:32

L'immagine che avevi allegato si capisce, ma io non mi metto a ricreare quella struttura che esiste gia' (anzi lo faro' appena non ho niente da fare ;) )
Per condividere un file ti ho dato il link alle istruzioni.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 23/06/16 07:04

ci sono riuscito? in tal caso ci sono due macro la seconda, per adesso è uguale alla prima ,è quella da cambiare.
Non ci riuscivo perchè incollavo il 2° link
http://www.filedropper.com/supere_1
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 23/06/16 14:07

Ok, adesso ho il file, e immagino che il foglio su cui lavorare sia MultiArch.
Pero' prima di impostare la macro vorrei sapere quale e' il database su cui calcolare i ritardi: colonne C:H (come immagino), o colonne I:Z (dove pero' non e' garantita l'unicita' dei numeri presenti).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 23/06/16 15:23

Anthony47 ha scritto:Ok, adesso ho il file, e immagino che il foglio su cui lavorare sia MultiArch.
Pero' prima di impostare la macro vorrei sapere quale e' il database su cui calcolare i ritardi: colonne C:H (come immagino), o colonne I:Z (dove pero' non e' garantita l'unicita' dei numeri presenti).

Ciao

Si sul foglio MultiArch ma NON su C:H come giustamente si è portati a credere, ma proprio su I:Z anche se hai subito notato la non unicità dei numeri presenti ma la cosa è voluta infatti analogamente a quanto succede nella prima macro qualora mi segnalasse(dopo aver cambiato "If Ambi > TargAm Then 'se "Ambi" è in un numero maggiore di quello indicato nella cella "Ar1" TargAm = [Ar1]" in "If Ambi = TargAm Then 'se "Ambi") è in un numero uguale di quello indicato nella cella "Ar1" impostando [Ar1]=0 signigicherebbe che un eventuale ambo 8 e 10 che non è mai uscito cioè non si è mai formato nell'ambito della stessa riga (di 18 numeri) , e ancora neanche l'ambo "Impuro" 8 e 8 oppure 10 e 10.
Se si vede il foglio Archivio si nota dalle formule che si formano 6 archivi virtuali il primo è diciamo l'evoluzione del 1° numero es: nell'estrazione precedente il primo numero è 10 nella successiva abbiamo per comodità 11,12,13,14,15,9 l'estraz virtuale parallela sarà 1.2.3.4.5.89 (89) =( 9+90)-10)... per adesso mi fermerei qui , se ci sono altre domande cercherò di spiegare.
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 28/06/16 01:52

Mah, prova questa macro sullo stesso database che avevi pubblicato:
Codice: Seleziona tutto
Sub AmbiDel()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107074
Dim VArr
Dim I As Integer, J As Integer, M As Integer, N As Integer, OkM As Boolean, OkN As Boolean
Dim Ctr As Integer, Ambi As Integer, LastR As Long, TargDel, lastAmbo As Long
Dim ResArr(1 To 20000, 1 To 4)
'
TargDel = [AR1]
Range("AQ4:AT20000").Clear
Sheets("MultiArch").Select
LastR = Cells(Rows.Count, 2).End(xlUp).Row
VArr = Range("i3:z" & LastR).Value
'
For M = 1 To 89
'    Application.ScreenUpdating = False
    For N = M + 1 To 90
    DoEvents
        OkM = False: OkN = False: lastAmbo = 1
        For I = 1 To UBound(VArr, 1)
        OkM = False: OkN = False
            Ctr = 0
            For J = 1 To 18
                If VArr(I, J) = M Then
                    OkM = True
                End If
                If VArr(I, J) = N Then
                    OkN = True
                End If
            Next J
            If OkM And OkN Then
                If (I - lastAmbo) >= TargDel And nrow < 20000 Then
                nrow = nrow + 1
                ResArr(nrow, 1) = M: ResArr(nrow, 2) = N: ResArr(nrow, 3) = I - lastAmbo: ResArr(nrow, 4) = I
                End If
                lastAmbo = I
            End If
        Next I
    Next N
'If M Mod 10 = 0 Then Stop
Next M
'Application.ScreenUpdating = True
Range("AQ4").Resize(nrow, 4).Value = ResArr
If nrow < 20000 Then myMess = "Completato..." Else myMess = "Limitato a 20k!"
MsgBox myMess
End Sub
Nelle 4 colonne AQ:AT (che vengono ripulite all'avvio della macro) vengono riportati:
-i due numeri dell'ambo
-il ritardo
-la riga dell'estrazione il cui la situazione si verifica
In caso di piu' di 20mila risultati solo i primi 20mila vengono riportati, e il messaggio di completamento segnala questa limitazione.
Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 28/06/16 09:12

Mi sembra che non va ,a me risultano questi a mbi che superano i 100 estrazioni di ritardo compresi gli ambi impuri cioè l'uscita
di un numero dell'ambo ripetuto 2 o più volte, sarò sconnesso x qualche giorno intanto approfondisco la macro,
02.74 Ritardo 128
08.19 Ritardo 135
08.68 Ritardo 134
08.86 Ritardo 114
08.90 Ritardo 134
19.84 Ritardo 110
35.63 Ritardo 144
35.74 Ritardo 132
41.52 Ritardo 161
41.83 Ritardo 123
49.72 Ritardo 102
50.60 Ritardo 131
50.84 Ritardo 139
52.68 Ritardo 117
63.64 Ritardo 118
63.84 Ritardo 125
63.88 Ritardo 137
74.84 Ritardo 110
75.84 Ritardo 127
inveve con la tua macro i risultati sono questidove -i due numeri dell'ambo
-il ritardo
-la riga dell'estrazione il cui la situazione si verifica
1 7 160 161
1 25 101 146
1 26 107 180
1 31 126 160
1 46 111 112
1 50 131 242
1 52 101 215
1 75 129 174
2 3 113 199
2 6 144 180
2 8 167 217
2 9 110 232
2 13 130 235
2 18 177 180
2 20 104 175
2 26 109 180
2 27 152 203
2 29 130 184
2 35 104 184
2 38 119 224
2 39 113 114
2 42 121 157
2 46 113 114
2 47 137 223
2 50 148 149
2 51 113 114
2 52 103 114
2 63 103 115
2 69 168 248
2 73 113 184
2 75 126 243
2 78 117 157
2 80 108 223
2 81 163 217
2 83 152 223
2 84 120 122
2 85 119 236
2 86 111 114
2 90 134 184
3 16 118 156
3 37 135 229
3 44 112 225
3 52 155 215
3 72 105 199
3 77 114 185
3 81 112 185
3 82 114 198
3 86 108 140
3 90 106 219
4 10 116 118
4 11 163 164
4 16 111 235
4 23 134 228
4 40 113 209
4 48 121 122
4 54 137 138
4 61 124 204
4 77 175 215
ecc ecc
solo per dire che il primo ambo che supera i 100 turni 2 e 74 nell'elenco scaturente dalla tua macro non c'è singolare il fatto che nel tuo elenco compaiono i due ambi prima e dopo ovvero 2 e 73 e 2 e 74
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 28/06/16 23:08

Come e' noto io di lotto e affini non ne capisco un'acca.
vorrei fare un'altra macro che ... mi trovasse ... gli ambi, ma invece delle "volte" che è uscito trovasse il "ritardo in atto" che deve essere ... [maggiore] di quello che io indico nella cella AR1
La macro che ti ho proposto esamina tutte le possibili combinazioni di ambi (metodo tradizionale, cioe' ambi "puri", da contrapporsi ad ambi "impuri" che immagino possono uscire sulla ruota del diavolo); per ogni combinazione (1-2; 1-3; 1-4;... 2-3; 2-4; ... etc etc) scorre la tabella e verifica se la coppia di numeri e' presente nella riga; se Si, allora esamina il ritardo ottenuto da quella combinazione, e se superiore alla soglia impostata in AR1 allora viene scritto un riepilogo in colonna AQ:AT, accodando ogni riepilogo al precedente; poi ripete con le righe successive di tabella.
Questa e' stata la mia interpretazione della tua richiesta.

Se invece vorresti qualcosa di diverso allora prova a spiegare di nuovo e vediamo cosa capisco.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 29/06/16 10:16

Provo a spiegarmi ,spero meglio. E' noto che con 90 numeri gli ambi possibili che si formano con 90 numeri sono 4050 che sono 1 e 2, 1 e 3 ....89 e 90.
Se aggiungiamo anche quelli che in questa situazione particolare io chiamo impuri cioè 1 e 1 2 e 2 ....90 e 90 otteniamo 4140 ambi.Ora se io metto 100 in ar1
significa che nell'output auspico che mi si indichi un elenco degli ambi, che nella situazione prospettata e con i parametri visibili 252 righe(di cui 2 righe
non facenti parte del database)e colonne i:z ,che non sono apparsi più da almeno 100 estrazioni il primo ambo con che dovrebbe vedere elaborare è 1 e 2 compresi gli
eventuali ambi impropri 1 e 1 o 2 e 2 con l'aiuto dell'evidenziatore posso notare che l'ambo 1 e 2 è uscito alla riga 238 ovvero 14 estrazioni fa (252-238)
quindi lo scarta e prosegue.... 1 e 3 uscito alla riga 227 25 estrazioni fa (non supera le 100 estrazioni quindi scartato) e cosi via arriva a esaminare 2 e 74
con l'aiuto dell'evidenziatore noto che l'ultima presenza la trovo alla riga 124 (252-124= 128)quindi ecco un ambo che ha superato 100 estrazioni di ritardo e quindi farà parte
dell'output (nota che è uscito l'ambo naturale ma se avessimo avuto 2 e 2 o 74 e 74 nell'output doveva essere indicato lo stesso)
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 30/06/16 22:13

Ok, quindi non serve analizzare gli ambo che sono usciti ma bisogna limitarsi a conteggiare il ritardo finale...
Potrebbe giovarti questa versione:
Codice: Seleziona tutto
Sub AmbiDel2()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107074
Dim VArr
Dim I As Integer, J As Integer, K As Integer, M As Integer, N As Integer
Dim LastR As Long, TargDel
Dim delArr(1 To 90, 1 To 90) As Variant
'
Sheets("MultiArch").Select
TargDel = [AR1]
Range("AQ4:AT20000").Clear
LastR = Cells(Rows.Count, 2).End(xlUp).Row
VArr = Range("i3:z" & LastR).Value
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'
myTim = Timer
For I = UBound(VArr, 1) To LBound(VArr, 1) Step -1
DoEvents
    For J = LBound(VArr, 2) To UBound(VArr, 2) - 1
        For K = J + 1 To UBound(VArr, 2)
        pluto = pluto + 1
            If IsEmpty(delArr(VArr(I, J), VArr(I, K))) Then
                delArr(VArr(I, J), VArr(I, K)) = I
                delArr(VArr(I, K), VArr(I, J)) = I
                pippo = pippo + 1
            Else
                papero = papero + 1
            End If
        Next K
    Next J
'If myEmpty(delArr) = False Then Exit For
Next I
myRow = 4
ub1 = UBound(VArr, 1)
For M = 1 To 90
    For N = M To 90
        If (ub1 - delArr(M, N)) > TargDel Then
            Cells(myRow, "AQ") = M
            Cells(myRow, "AR") = N
            Cells(myRow, "AS") = ub1 - delArr(M, N)
            myRow = myRow + 1
        End If
    Next N
Next M
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox ("Completato..." & vbCrLf & Format(Timer - myTim, "0.00") & " secs - " & myEmpty(delArr))
'Sheets("Foglio1").Range("B2").Resize(90, 90).Value = delArr
End Sub
I dati che hai usato nel tuo ultimo messaggio non collimano con quanto vedo nella tabelle che sto usando io; ad esempio to dici che l'accoppiata 1-2 e' uscita su riga 238, mentre io la trovo sulla riga 204; la 1-3 non su riga 227 ma su riga 249.
Deduco che stai lavorando su dati diversi dai miei.

Prova e fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 01/07/16 07:52

Anthony47 ha scritto:Ok, quindi non serve analizzare gli ambo che sono usciti ma bisogna limitarsi a conteggiare il ritardo finale...
Potrebbe giovarti questa versione:
Codice: Seleziona tutto
Sub AmbiDel2()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107074
Dim VArr
Dim I As Integer, J As Integer, K As Integer, M As Integer, N As Integer
Dim LastR As Long, TargDel
Dim delArr(1 To 90, 1 To 90) As Variant
'
Sheets("MultiArch").Select
TargDel = [AR1]
Range("AQ4:AT20000").Clear
LastR = Cells(Rows.Count, 2).End(xlUp).Row
VArr = Range("i3:z" & LastR).Value
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'
myTim = Timer
For I = UBound(VArr, 1) To LBound(VArr, 1) Step -1
DoEvents
    For J = LBound(VArr, 2) To UBound(VArr, 2) - 1
        For K = J + 1 To UBound(VArr, 2)
        pluto = pluto + 1
            If IsEmpty(delArr(VArr(I, J), VArr(I, K))) Then
                delArr(VArr(I, J), VArr(I, K)) = I
                delArr(VArr(I, K), VArr(I, J)) = I
                pippo = pippo + 1
            Else
                papero = papero + 1
            End If
        Next K
    Next J
'If myEmpty(delArr) = False Then Exit For
Next I
myRow = 4
ub1 = UBound(VArr, 1)
For M = 1 To 90
    For N = M To 90
        If (ub1 - delArr(M, N)) > TargDel Then
            Cells(myRow, "AQ") = M
            Cells(myRow, "AR") = N
            Cells(myRow, "AS") = ub1 - delArr(M, N)
            myRow = myRow + 1
        End If
    Next N
Next M
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox ("Completato..." & vbCrLf & Format(Timer - myTim, "0.00") & " secs - " &[b][u][size=150] [color=#FF0000]myEmpty[/color][/size][/u][/b](delArr))
'Sheets("Foglio1").Range("B2").Resize(90, 90).Value = delArr
End Sub
I dati che hai usato nel tuo ultimo messaggio non collimano con quanto vedo nella tabelle che sto usando io; ad esempio to dici che l'accoppiata 1-2 e' uscita su riga 238, mentre io la trovo sulla riga 204; la 1-3 non su riga 227 ma su riga 249.
Deduco che stai lavorando su dati diversi dai miei.

Prova e fai sapere...

ok Anthony hai ragione non siamo sulla stessa linea d'onda, ho provvedo subito concordo che 1 e 2 è uscito alla riga 238 ma, ai miei fini l'ambo 1 e 2 , è uscito l'ultima volta alla riga 226 nella sua forma impura con la coppia 1 e 1 (sarebbe stata la stessa cosa se fosse uscita 2 e 2) ma la cosa più importante è che la macro si blocca con "Errore di compilazione Sub o Function non definita ... qui myEmpty nell'ultima rriga prima del'End Sub . Ora siccome a te gira penso sia stata trascritta male (io ho la vers 2007)
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 01/07/16 11:44

Grrrr...
Quel "& myEmpty(delArr)" mi serviva durante il debug per avere info sullo stato di riempimento della matrice dei ritardi; cancellalo, in modo che rimanga solo
Codice: Seleziona tutto
MsgBox ("Completato..." & vbCrLf & Format(Timer - myTim, "0.00") & " secs  ")

Ribadisco che nella tabella del file che io uso l'ultimo 1-2 mi sembra sia sulla riga 204, quindi se i risultati non ti quadrano dovresti pubblicare una nuova tabella di estrazioni con valori fissi (non modificabili via formule).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ambi con ritardo superiore a....

Postdi papiriof » 01/07/16 14:25

Ora praticamente ci siamo solo che ai miei fini ,considerato che tutte le impostazioni ormai concordano, preferirei avere un outpup depurato degli ambi impuri .
mi spiego vorrei che il risultato dell'output fosse il risultato di questa formula che adopero:
Codice: Seleziona tutto
=SE(O(CONTA.SE(I3:Z3;cip)>1;CONTA.SE(I3:Z3;ciop)>1;E(CONTA.SE(I3:Z3;cip)>0;CONTA.SE(I3:Z3;ciop)>0));253-RIF.RIGA(3:3);"")
ma che mi costa un sacco di prove :D (per rimanere in tema Disney ho dato un nome ai 2 elementi dell'ambo cip e ciop :) )
04.82 Ritardo 111
12.32 Ritardo 103
15.40 Ritardo 110
15.44 Ritardo 110
15.49 Ritardo 110
19.85 Ritardo 132
26.70 Ritardo 116
28.70 Ritardo 113
30.85 Ritardo 109
31.68 Ritardo 121
40.68 Ritardo 136
42.85 Ritardo 127
invece di quello che esce dalla macro(pur riportando gli ambi di cui sopra) il primo ambo che mi segnala è 1 e 64 con rit 131 è vero che 1 e 64 si sono incontrati così 131 estrazioni fa ma essendo uscito l'ambo impuro 1 e 1 alla riga 226 (253-226=27)cioè un ritardo di 27 quindi da escludere , perchè agli effetti di un eventuale giocata avrebbe senso puntare più su un ambo che ha ritardo in tutta la sua pienezza .
Tutto questo non per pretendere ulteriormente altro impegno da parte tua , mi posso arrangiare anche così,ma se non dovesse comportare ulteriore impegno perchè forse mi sono spiegato meglio..... :oops:
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi papiriof » 12/07/16 12:16

Immagine
Ciao Anthony la tua macro diciamo è troppo forte oltre che ha una velocità impressionante , per giungere al risultato voluto( l'elenco che vedi a destra che comincia con 4 e 82 ) mi avvalgo adesso della formula in alto ripetuta da Az3:Az252 in at 1 e au 1 metto il primo ambo che viene fuori dalla tua macro , in Az1 ho la formula per ricavare il MIN di Az3:Az252 in questo caso 25 quindi lo scarto e cosi via fino ad ottenere l'elenco che è a destra . Come vedi la cosa è lunga .... ti prego se puoi fare qualcosa di meglio..... Grazie.
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Re: Ambi con ritardo superiore a....

Postdi Anthony47 » 13/07/16 00:44

E' che a me il concetto di "ambo impuro" proprio non andava giu' (io sono per le cose pure); quindi speravo proprio che "mi posso arrangiare anche così" fosse la tua ultima conclusione....

Dopo aver rischiato di fondere il neurone sinistro (quello che tratta questioni di logica) ti propongo di sostituire il vecchio blocco
For M = 1 To 90
For N = M To 90
If (ub1 - delArr(M, N)) > TargDel Then
Cells(myRow, "AQ") = M
Cells(myRow, "AR") = N
Cells(myRow, "AS") = ub1 - delArr(M, N)
myRow = myRow + 1
End If
Next N
Next M

Con quest'altro:
Codice: Seleziona tutto
For M = 1 To 90
    For N = M To 90
        If (ub1 - delArr(M, N)) > TargDel And _
          (ub1 - delArr(M, M)) > TargDel And _
          (ub1 - delArr(N, N)) > TargDel And M <> N Then
            Cells(myRow, "AQ") = M
            Cells(myRow, "AR") = N
            Cells(myRow, "AS") = ub1 - delArr(M, N)
            Cells(myRow, "AT") = delArr(M, N) + 2
            myRow = myRow + 1
        End If
    Next N
Next M

Nelle colonne AQ:AT vengono scritti:
-i due numeri
-il ritardo dell'ambo
-la riga piu' recente su cui l'ambo e' presente

agli effetti di un eventuale giocata avrebbe senso puntare più su un ambo che ha ritardo in tutta la sua pienezza
Su questo concetto devo dissentire: se un ambo non vuole uscire, allora lascialo perdere e gioca tutti gli altri che escono (in quel frangente) piu' spesso del normale.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Ambi con ritardo superiore a....":

media ritardo
Autore: giorgioa
Forum: Applicazioni Office Windows
Risposte: 11

Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti