Condividi:        

Aggiornamento RITARDI con macro - Excel2007

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

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 04/11/10 17:43

Ciao a tutto il Forum ed in particolare ai moderatori Antony e Flash.
Ritorno alla carica con una MACRO già elaborata in questo Forum che ho adattato, ma con un risultato non positivo.
Allego il file con l'esempio. La macro già elaborata dovrebbe essere corretta e dovrà consentire l'aggiornamento del "ritardo attuale" ogni volta che avviena l'estrazione che io aggiornerò manualmente. Tutto ciò a partire dalla prima estrazione.
Come sempre ringrazio anticipatamente e spero cia sia la soluzione che io non ho trovato.
seniorG62
http://rapidshare.com/files/428890380/AggiornaRIT.xls
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Sponsor
 

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Flash30005 » 05/11/10 00:06

Ho scaricato il file
l'ho aperto
letto i commenti
letto il quesito
capito più o meno cosa vorresti ottenere
ma....
non riesco a capire dove sono le estrazioni per valutare il ritardo e i numeri indice che dovrebbero essere posti per collocare il loro ritardo

Puoi spiegare meglio?

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Anthony47 » 05/11/10 01:03

Non so cosa fa la macro, ma messa in T2 questa formula ti restituisce il ritardo corrente del numero segnato in col M:
Codice: Seleziona tutto
=1+CONTA.VALORI($E$2:$E$2000)-MAX(SE(E$2:E$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(F$2:F$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(G$2:G$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(H$2:H$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(I$2:I$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(J$2:J$2000=M2;RIF.RIGA(E$2:E$2000);"");SE(K$2:K$2000=M2;RIF.RIGA(E$2:E$2000);"");1)

Da confermare con Contr-Maiusc-Enter; poi copi verso i basso fino a T91; max 2000 estrazioni (oltre devi modificare il $2000 portandolo ad es a $2500 o $3000).

Se cosi' non risolvi allora e' cruciale la domanda fatta da Flash, vedi sopra.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 05/11/10 23:03

Ciao a tutto il FORUM.
Grazie Antony, terrò comunque conto della tua formula, che proverò e ti farò sapere.
Per FLASH(la macro dell'esempio, se ricordi, con altri parametri è stata elaborata da Te):
Come hai potuto intuire, l'estrazione indicata nell'esempio è la "prima" della serie (Supernalotto), quindi i "ritardi" vanno costruiti sulle estrazioni successive, quindi in "progress".
A presto FLASH, un salutone.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 11/11/10 01:43

Ciao Antony,
ho testato la tua funzione, ma non dà il risultato richiesto, ovvero su tutti i 90 numeri appare 1, mentre per gli estratti dovrebbe apparire lo "0".
Nel precedente post ho dato il chiarimento richiestomi. Spero sia stato utile a far capire la mia esigenza.
Aspetto qualche suggerimento.
Grazie per l'attenzione.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Anthony47 » 12/11/10 00:10

Capisco che cerchi qualcosa di piu' completo della formula, ma applicandola sul tuo foglio e simulando poche altre estrazioni io ottengo dei risultati verosimili, come da immagine.

Immagine

Uploaded with ImageShack.us
I ritardi sono in col T per i numeri di col M.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 12/11/10 01:30

Ciao Antony, FLASH
Per Antony, non ho capito ms farò delle prove.
PER FLASH
Hai letto il chiarimento che ho postato?
Se non sono stato chiaro ed esauriente, fammi sapere.
Grazie ad entrambi.
A presto.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 13/11/10 23:46

Ciao FLASH,
scusa se ti disturbo, penso che tu sia impegnatissimo.
Ti ho dato il chiarimento richiestomi.
Forse non è possibile fare una macro per avviare la progressione dei ritardi?
SE COSI' FOSSE FAMMI SAPERE, così non disturbo più.
Ringrazio per la cortesia.
A presto.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Flash30005 » 14/11/10 10:16

seniorG62 ha scritto: penso che tu sia impegnatissimo


Si, infatti...

Poi ti chiederò altre delucidazioni

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 15/11/10 02:51

Ciao FLASH,
fatti vivo quando puoi.
A presto.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Flash30005 » 17/11/10 23:55

Inserisci in un modulo questa macro e avviala
Codice: Seleziona tutto
Sub RitAtt()
URA = Sheets("TOT_SEL").Range("E" & Rows.Count).End(xlUp).Row
Worksheets("TOT_SEL").Range("T2:T91").Value = 1000
Dim VettN(90) As Integer
For NN = 1 To 90
VettN(NN) = NN
Next NN
For NC = 2 To 91
    Worksheets("TOT_SEL").Cells(NC, 19).Value = NC - 1
    TR = 0
    For RRA = URA To 2 Step -1
        For CC = 5 To 11
            If Worksheets("TOT_SEL").Cells(RRA, CC).Value = VettN(NC - 1) Then
                If Worksheets("TOT_SEL").Cells(NC, 20).Value = 1000 Then Worksheets("TOT_SEL").Cells(NC, 20).Value = URA - RRA
                TR = 1
            End If

        Next CC

    Next RRA
        If TR = 0 Then
            If Worksheets("TOT_SEL").Cells(NC, 20).Value = 1000 Then Worksheets("TOT_SEL").Cells(NC, 20).Value = URA - RRA
        End If
Next NC
    Range("S1:T91").Sort Key1:=Range("T2"), Order1:=xlDescending, Key2:=Range("S2") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
End Sub


Fai sapere
Ciao

P.s. Ho notato che nel tuo file hai inserito le macro nel foglio e non nel modulo e questo non è molto corretto
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 18/11/10 16:15

Ciao FLASH,
ti farò sapere, non ho potuto testare, ho problemi con excel.
A presto, grazie di tutto
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 23/11/10 17:13

Ciao FLASH,
la macro che mi hai postato va benissimo e ti ringrazio.
Io pensavo che Tu facessi la manutenzione della precedente "MACRO" che prevedeva l'aggiornamento del "Ritardo Massimo" = Rit MAX colonne P - Q, nell'esempio allegato la volta precedente.
Ora ti devo chiedere se puoi aggiornare, implementare la macro in modo da generare il "Ritardo Massimo" ovvero la mancata uscita dei valori da 1 a 90 per un certo numero di estrazioni e in modo incrementale. In sostanza la macro dovrebbe rilevare "quante volte il numero (da 1 a 90) non è stato estratto in modo progressivo evidenzianto la quantità più alta. Nell'esempio allegato si può capire la mia esigenza.
Grazie per l'attenzionee disponibile ad ulteriori chiarimenti
seniorG62
http://rapidshare.com/files/432664867/AggiornaRIT2.xls
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37

Re: Aggiornamento RITARDI con macro - Excel2007

Postdi Flash30005 » 23/11/10 22:36

Non ho utilizzato la macro precedente perché non si può utilizzare un codice realizzato per una situazione in un'altra disposizone di dati con uno schema "stravolto", tanto più perché mi sembra che mi hai detto in MP di aver provato a ritoccare la macro senza riuscire nell'intento.
"Per tagliare la testa al toro", una volta provata e appurato che non era funzionante, ho realizzato la macro per il Ritardo Attuale come mi hai chiesto (pensando anche che all'occorrenza l'avresti integrata con la precedente).
Quindi ora ho modificato la macro "AnaRit2" adattandola ad ambedue le esigenze e puoi sostituire la precedente con questa nuova macro
L'intero codice mette in ordine il Ritardo Attuale come da tua prima richiesta ma che assegna il Massimo Ritardo come da tua ultima richiesta.

Codice: Seleziona tutto
Sub AnaRit2()
UE = Range("E" & Rows.Count).End(xlUp).Row
For Num = 1 To 90
    RitM = 0
    M_RitM = -1
    RitA = -1
    Passo = 0
    M_RitA = ""
    For RR = UE To 2 Step -1
        RitA = RitA + 1
    For CC = 5 To 11
        If Num = Cells(RR, CC).Value Then
            If Passo = 0 Then M_RitA = RitA
        Passo = 1
            RitM = -1
    End If
Next CC
        RitM = RitM + 1
        If M_RitM < RitM Then M_RitM = RitM

Next RR
    If M_RitA = "" Then M_RitA = UE - 1
    Cells(Num + 1, 20).Value = M_RitA
    Cells(Num + 1, 17).Value = M_RitM
Next Num
    Range("S2").FormulaR1C1 = "1"
    Range("S3").FormulaR1C1 = "2"
    Range("S2:S3").Select
        Selection.AutoFill Destination:=Range("S2:S91"), Type:=xlFillDefault
    Range("L1").Select
    Columns("S:T").Select
        Selection.Sort Key1:=Range("T2"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("L1").Select
    For Rc = 2 To 91
        Numero = Cells(Rc, 20).Value
        Numero = Numero Mod 7
        Cells(Rc, 20).Font.ColorIndex = Numero * 3 + 3
Next Rc
Call Ordina
End Sub
Sub Ordina()
UE = Range("M" & Rows.Count).End(xlUp).Row
For OO = 2 To UE
    ORA = Range("S" & OO).Value
For OFM = 2 To UE
    If ORA = Range("M" & OFM).Value Then
        Range("U" & OO).Value = Range("N" & OFM).Value
            Range("V" & OO).Value = Range("Q" & OFM).Value
GoTo SaltaF
End If
Next OFM
SaltaF:
Next OO
End Sub



Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Aggiornamento RITARDI con macro - Excel2007

Postdi seniorG62 » 24/11/10 00:04

Ciao FLASH,
provato e tutto funziona bene, fantastico, grazie.
Tante buone cose.
A presto.
seniorG62
seniorG62
Utente Junior
 
Post: 72
Iscritto il: 20/07/08 17:37


Torna a Applicazioni Office Windows


Topic correlati a "Aggiornamento RITARDI con macro - Excel2007":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti