Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

MACRO - Excel

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

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 11:15

OK!!!!!!!!!!!!!

Ci ho messo un pochino a capire il meccanismo; funziona tutto perfettamente :)

Scusami se approfitto della tua pazienza, ci sarebbe da aggiungere
un'ultimo pulsante dove assegnare l'ultimo numero della cinquina:

Si tratta della colonna "O" dove andrebbero raggruppati per l'appunto l'ultimo numero rimasto che viene individuato così:

=SE(E(A8<>A9;B8=B9);"*";"")

7611 Ba 63 at4 951 8562 *
7621 Ba 63 at4 941 8562 (Gruppo 2)

7870 Ba 63 at4 692 8562 *
7879 Ba 63 at4 683 8562 *
7897 Ba 63 at4 665 8562 (Gruppo 3)

7676 Ba 63 at4 886 8562 *
7681 Ba 63 at4 881 8562 *
7694 Ba 63 at4 868 8562 *
7724 Ba 63 at4 838 8562 (Gruppo 4) ecc.


Il tutto segnalato nella colonna "O"

Veramente un grosso plauso per questo lavoro ineccepibile!!!

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Sponsor
 

Re: MACRO - Excel

Postdi Flash30005 » 25/07/12 12:11

Lucio Peruggini ha scritto:ci sarebbe da aggiungere...


Non è così semplice perché dovrei impostare anche cosa succede alle altre combinazioni (fino ad ora An è sempre stato uguale a An+1) e sviluppavamo 4 possibili combinazioni (tra B e D), ora metti in realzione A con B (A<>A e B=B) ma D come deve essere (Uguale a D o Diverso)?

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 12:29

Il "D" potrebbe essere uguale o differente (sarebbero da valutare le due variabili).

Comunque, se troppo complicato e va ad intaccare le altre condizioni, lasciamolo pure così! Va più che bene, ok?
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 25/07/12 13:16

La macro non "agisce" come la tua formula "ignorando" le altre condizioni quando previste, come, invece, avviene nel nostro caso.
Inoltre noi abbiamo la colonna E è sempre uguale (è la condizione fondamentale e fissa) mentre nella tabella da te pubblicata E sembra essere sempre diversa.
A questo punto, forse, conviene realizzare una macro a parte. ;)

Esempio:
aggiungi questa macro alla quale assegnerai il nuovo pulsante

Codice: Seleziona tutto
Sub DivAn()
Columns("O:O").Clear
Col = 15
ColoraSe3A
End Sub


Poi nel modulo inserisci questa nuova macro
Codice: Seleziona tutto
Sub ColoraSe3A()
    Worksheets("Attuali").Select
    UR = Range("A" & Rows.Count).End(xlUp).Row
    Columns("A:F").Interior.ColorIndex = xlNone
    Columns("A:F").Font.ColorIndex = 0
    For RR = 8 To UR - 1
    RF = RR
    RI = RR
    AC = 0
    AggCol = Range("B" & RR).Value
        Conta = 1
        For RR2 = RR + 1 To UR
                If Range("B" & RR).Value <> Range("B" & RR2).Value Then GoTo SaltaRR
                If Range("A" & RR).Value = Range("A" & RR2).Value Then GoTo SaltaRR
                RF = RR2
                RR = RR2
                Conta = Conta + 1
        Next RR2
SaltaRR:
    Select Case AggCol
    Case "Ba"
    AC = 0
    Case "Ca"
    AC = 9
    Case "Fi"
    AC = 10
    Case "Ge"
    AC = 11
    Case "Mi"
    AC = 12
    Case "Na"
    AC = 13
    Case "Pa"
    AC = 14
    Case "Ro"
    AC = 15
    Case "To"
    AC = 16
    Case "Ve"
    AC = 17
    End Select
    ColR = xlNone
    Select Case Conta
    Case 2
    ColR = 6
    Case 3
    ColR = 43
    Case 4
    ColR = 48
    Case 5
    ColR = 33
    End Select

    If ColR <> xlNone Then
    ColR = (ColR + AC) Mod 49
    If ColR = 0 Or ColR = 1 Then ColR = ColR + 10
    End If


    Range("A" & RI & ":F" & RF).Interior.ColorIndex = ColR
    If Conta > 1 Then
    Range(Cells(RI, Col), Cells(RF, Col)).Value = Conta
    Range(Cells(RI + 1, Col), Cells(RF, Col)).Font.ColorIndex = 2
    End If
    If ColR = 11 Or ColR = 9 Or ColR = 13 Or ColR = 5 Or ColR = 21 Then
    Range("A" & RI & ":F" & RF).Font.ColorIndex = 2
    End If
    RR = RF
    Next RR
    End Sub



Fai sapere
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 13:37

Come sempre grazie per la disponibilità, ora sto uscendo e rientro stasera. Orbene, al mio rientro controllo quanto mi hai detto.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 21:55

La colonna “E” deve essere diversa poiché è diversa la partenza; quindi ritardo diverso. Comunque ci sono almeno due variabili di un certo significato.

La prima è questa sottostante dove abbiamo: Totali 49

“A” diverso; “B” uguale; “D” uguale.


A------B------D------------------Colonna O
Div…Ugu……Ugu………………..Casi tot. 49
7868 Fi 80 at2 694 8562 *
7869 Fi 80 at2 693 8562
7870 Ba 63 at4 692 8562 *
7879 Ba 63 at4 683 8562 *
7897 Ba 63 at4 665 8562
7902 Fi 80 at2 660 8562 *
7907 Fi 80 at2 655 8562
7925 Ba 63 at4 637 8562 *
7932 Ba 63 at4 630 8562
7956 Fi 80 at2 606 8562 *
7960 Fi 80 at2 602 8562
7960 Ve 4 at5 602 8562 *
7965 Ve 26 at5 597 8562 *
7974 Ve 26 at5 588 8562
7998 Ba 63 at4 564 8562 *
7999 Ba 63 at4 563 8562
8005 Fi 89 at1 557 8562 *
8008 Fi 89 at1 554 8562
8026 Fi 89 at1 536 8562 *
8027 Fi 89 at1 535 8562
8030 Ve 4 at5 532 8562 *
8031 Ve 26 at5 531 8562 *
8038 Ve 26 at5 524 8562
8045 Ve 16 at4 517 8562 *
8048 Ve 10 at4 514 8562
8065 Fi 89 at1 497 8562 *
8066 Fi 89 at1 496 8562
8072 Mi 45 at3 490 8562 *
8074 Mi 45 at3 488 8562
8077 Fi 89 at1 485 8562 *
8079 Fi 89 at1 483 8562
8080 Mi 12 at2 482 8562 *
8081 Mi 12 at2 481 8562
8083 Pa 88 at4 479 8562 *
8085 Pa 88 at4 477 8562
8133 Ve 59 at5 429 8562 *
8135 Ve 4 at5 427 8562


In questo caso abbiamo: Totali 34
“A” diverso; “B” uguale; “D” Diverso.

A------B-----D-----------------Colonna O
Div….Ugu…Div…………………Casi tot. 34

7992 Ve 16 at4 570 8562 *
7995 Ve 4 at5 567 8562
8020 Ve 16 at4 542 8562 *
8022 Ve 26 at5 540 8562
8049 Mi 12 at2 513 8562 *
8052 Mi 87 at4 510 8562
8123 Na 41 at5 439 8562 *
8124 Na 75 at3 438 8562
8147 Ge 23 at5 415 8562 *
8148 Ge 67 at2 414 8562
8163 Mi 12 at2 399 8562 *
8164 Mi 65 at1 398 8562
8175 Na 69 at1 387 8562 *
8176 Na 56 at2 386 8562
8179 Ve 26 at5 383 8562 *
8180 Ve 3 at1 382 8562
8194 Na 66 at5 368 8562 *
8195 Na 56 at2 367 8562
8204 Fi 71 at5 358 8562 *
8205 Fi 82 at3 357 8562
8223 Ge 66 at4 339 8562 *
8224 Ge 67 at2 338 8562
8225 Ba 84 at5 337 8562 *
8226 Ba 55 at1 336 8562
8230 To 36 at5 332 8562 *
8231 To 67 at3 331 8562
8237 Na 66 at5 325 8562 *
8238 Na 19 at1 324 8562
8253 Ro 76 at5 309 8562 *
8254 Ro 33 at1 308 8562
8257 Pa 29 at5 305 8562 *
8258 Pa 81 at1 304 8562
8268 Ge 25 at5 294 8562 *
8269 Ge 60 at1 293 8562


Non so come hai impostato quest’altra macro ma purtroppo anche qui le variabili sono due. Quindi, oltre alla colonna “O” bisognerebbe implementare anche la “Q”; ma forse andiamo sul complicato.

Ciao e buona serata
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 25/07/12 22:17

e perché non
A Diverso, B Diverso, D Uguale
e
A Diverso, B Diverso, D Diverso? :roll:
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 22:19

Ad ogni modo, a prescindere dei ringraziamenti ti allego altro file (leggermente modificato) ho messo icone orizontali e aggiunto un riquadro a destra. Così abbiamo il medesimo foglio.

http://sharesend.com/fjlnr
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 25/07/12 23:16

Ci siamo quasi accavallati con i post e evidentemente non hai letto la mia domanda (post ore 23:17)

Ho prelevato il file e visto le modifiche:
hai portato l'inizio dati alla riga 12 (prima era 8 )
ma hai modificato in maniera errata la macro
il ciclo For next era
For RR = 8 to UR
e tu hai modificato
For RR = 4 to UR
invece che
For RR = 13 to UR

Comunque ecco il file
http://sharesend.com/g0f5a

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 25/07/12 23:38

Me ne sono accorto dopo aver inviato il file, già corretto.

Per quanto riguarda la tua legittima domanda, devi tener presente che stiamo parlando dell'ultimo numero di una cinquina che non può che essere su ruota singola.

Anche se questi vengono messi in gruppi saranno sempre numeri singoli o più volte chiamati in causa, che hanno partenza diversa e quindi ritardi diversi.

In sintesi:
"A" sarà sempre diverso
"B" sarà sempre uguale
"D" sarà uguale o diverso

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 25/07/12 23:53

Lucio Peruggini ha scritto:devi tener presente che stiamo parlando dell'ultimo numero di una cinquina che non può che essere su ruota singola.


Sinceramente non ho capito proprio nulla su come ottieni quella tabella :D
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 26/07/12 00:21

Ora vado a letto e domani con degli esempi più approfonditi spiego meglio come sono arrivato alla tabella riportata.

Intanto, guarda solamente già il primo gruppo (2) che hai in Excel:

Riga 13 e 14

7611 Ba 63 at4 951 8562
7621 Ba 63 at4 941 8562

Il numero 63 è uscito nell'estrazione 7611 insieme a questi (53.47.59.63.32) e ha un ritardo di 951.

Dopo dieci estrazioni si rifà vivo 7621 (21.63.49.47.59) ritardo 941.

Trattasi, dunque, dell'ultimo numero di queste due cinquine che deve ancora sfaldarsi; ed è atteso in quarta posizione.

Trattasi di un gruppo (2) pur avendo un identico numero e su medesima ruota poichè due sono le cinquine chiamate in causa.

Notte
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Lucio Peruggini » 26/07/12 23:03

Ciao Flash, oggi sono stato ben poco al PC ma quanto basta per darti ragione su quanto affermavi riguardo a:

e perché non
A Diverso, B Diverso, D Uguale
e
A Diverso, B Diverso, D Diverso?


Effettivamente le condizioni possono essere almeno quattro - troppe per un solo ultimo numero finale di una cinquina e troppe da inserire nel medesimo foglio.
Mi prendo un pochino di tempo, devo inserire anche gli storici dentro questo foglio e poi vedere il da farsi.
Grazie
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Lucio Peruggini » 29/07/12 10:20

Ciao Flash e buona domenica.
Mi ci è voluto un pochino di lavoro con gli script e finalmente ho potuto inserire tutti gli storici di questa ricerca sui determinati. Ho meglio:
Ho ricavato gli storici su tremila estrazioni perché se partivo dalla estrazione 3950 del 1946 (archivio privo di buchi) e con tutte le ruote, le righe superavano il milione. Adesso, con tremila estrazioni sono su 750.250 righe che è già una buona stima per gli storici.

Però ho riscontrato (mia mancanza) che, la macro nella variabile ( = G/ B7:D7 = ) Columns("G:G") Clear lavora esclusivamente con gli attuali e non sugli storici.
Ciò è normale poiché trattasi di sincronismi (stessa partenza, stessa ruota, stesso ritardo – colonna E).
Quindi per poter ottenere in “G” gli storici, dovremmo adoperare come variabili
( = B7:E7 = ) con i risultati dei gruppi in “G”.
Così facendo otterremmo come da foto i sincronismi “storici” di ruota.

Allego foto e file con solo due ruote dove ho inserito la classica formula per questi sincronismi.

Ciao

immagine
http://s12.postimage.org/81dfuubql/IMMA ... ONISMI.png

file
http://sharesend.com/0th31
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 29/07/12 10:32

Ma il file è senza macro? :eeh:

Quando posti i file xls di un certo "peso" è consigliabile comprimerli come archivio .zip o .rar
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 29/07/12 10:46

Ciao Flash, in effetti il foglio è senza macro; ho impostato solo la formula.
In realtà, il foglio è quello che hai già solamente ci sono solo gli attuali. La modifica in "G" prende in considerazione = B:E =

Comunque se vuoi posso inviarti una piccola parte che comprende solo mille estrazioni con storici e attuali insieme; solo trattasi di 230.000 righe.

Per zippare in rar ora guardo come fare. Io adopero il 7zip ma vedrò di procurarmi qualcos'altro.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Re: MACRO - Excel

Postdi Flash30005 » 29/07/12 11:12

Ho ripreso un file postato e adattato la macro esclusivamente per avere B= ed E=
quindi questa macro lavora esclusivamente per questa condizione (non più insieme alle altre B.. D...)
in un modulo inserisci questo codice:
Codice: Seleziona tutto
Public UgB7, UgE7, UgD7 As String, Col As Integer
Sub B7E7()
UgB7 = "="
UgE7 = "="
Col = 7
ColoraSeE
End Sub

Sub ColoraSeE()
    Worksheets("Attuali").Select
    UR = Range("A" & Rows.Count).End(xlUp).Row
    Columns("A:F").Interior.ColorIndex = xlNone
    Columns("A:F").Font.ColorIndex = 0
    Columns(Col).Clear
For RR = 13 To UR - 1
    RF = RR
    RI = RR
    AC = 0
    AggCol = Range("B" & RR).Value
        Str1 = Range("A" & RR).Value & Range("E" & RR).Value & Range("F" & RR).Value
        Conta = 1
        For RR2 = RR + 1 To UR
            Str2 = Range("A" & RR2).Value & Range("E" & RR2).Value & Range("F" & RR2).Value
            If Str1 <> Str2 Then GoTo SaltaRR
            If UgB7 = "=" Then
                If Range("B" & RR).Value <> Range("B" & RR2).Value Then GoTo SaltaRR
            Else
                If Range("B" & RR).Value = Range("B" & RR2).Value Then GoTo SaltaRR
            End If
           
            If UgE7 = "=" Then
                If Range("E" & RR).Value <> Range("E" & RR2).Value Then GoTo SaltaRR
            Else
                If Range("E" & RR).Value = Range("E" & RR2).Value Then GoTo SaltaRR
            End If
                RF = RR2
                RR = RR2
                Conta = Conta + 1
        Next RR2

SaltaRR:
    Select Case AggCol
    Case "Ba"
    AC = 0
    Case "Ca"
    AC = 9
    Case "Fi"
    AC = 10
    Case "Ge"
    AC = 11
    Case "Mi"
    AC = 12
    Case "Na"
    AC = 13
    Case "Pa"
    AC = 14
    Case "Ro"
    AC = 15
    Case "To"
    AC = 16
    Case "Ve"
    AC = 17
    End Select
    ColR = xlNone
    Select Case Conta
    Case 2
    ColR = 6
    Case 3
    ColR = 43
    Case 4
    ColR = 48
    Case 5
    ColR = 33
    End Select

    If ColR <> xlNone Then
        ColR = (ColR + AC) Mod 49
        If ColR = 0 Or ColR = 1 Then ColR = ColR + 10
    End If

    Range("A" & RI & ":F" & RF).Interior.ColorIndex = ColR
    If Conta > 1 Then
        Range(Cells(RI, Col), Cells(RF, Col)).Value = Conta
        Range(Cells(RI + 1, Col), Cells(RF, Col)).Font.ColorIndex = 2
    End If
    If ColR = 11 Or ColR = 9 Or ColR = 13 Or ColR = 5 Or ColR = 21 Then
        Range("A" & RI & ":F" & RF).Font.ColorIndex = 2
    End If
    RR = RF
Next RR
End Sub


Ciao

P.s. l'inizio elaborazione inizia dalla riga 13 come nel precedente schema dati e non dalla riga1 come dall'ultimo file da te inviato.
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: MACRO - Excel

Postdi Lucio Peruggini » 29/07/12 17:30

Ciao Flash, purtroppo solo ora ho potuto provare la nuova modifica che è perfetta.
Devo solo mettere assieme un pochino di dati e riordinare il tutto.

Grazzzzzzzzzzzzie infinite!!!
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 890
Iscritto il: 24/01/11 16:23

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "MACRO - Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti