View Full Version : Ciclo per tabella in excel
Allego un foglio di excel (estrazioni.zip) che riporta una tabella delle estrazioni del superenalotto, a fianco della tabella c'è la stessa tabella che è il risultato di ciò che vorrei ottenere dal ciclo (che non riesco a fare).
In sostanza devo togliere i numeri usciti nell'ultima estazione dalle estrazioni precedenti fino a quando rimane solo un numero (cella P96).
Ciao a tutti
non riesco ad inserire l'allegato (messaggio del forum: Unable to update Posts Table), lo inserisco appena il forum lo permetterà.
Comunque credo il mio primo post sia sufficentemente esauriente.
Originally posted by "CIUFFO"
Allego un foglio di excel (estrazioni.zip) che riporta una tabella delle estrazioni del superenalotto, a fianco della tabella c'è la stessa tabella che è il risultato di ciò che vorrei ottenere dal ciclo (che non riesco a fare).
In sostanza devo togliere i numeri usciti nell'ultima estazione dalle estrazioni precedenti fino a quando rimane solo un numero (cella P96).
Ciao a tutti
A tuttoggi non riesco ad inserire l'allegato.
Originally posted by "CIUFFO"
Allego un foglio di excel (estrazioni.zip) che riporta una tabella delle estrazioni del superenalotto, a fianco della tabella c'è la stessa tabella che è il risultato di ciò che vorrei ottenere dal ciclo (che non riesco a fare).
In sostanza devo togliere i numeri usciti nell'ultima estazione dalle estrazioni precedenti fino a quando rimane solo un numero (cella P96).
Ciao a tutti
Originally posted by "CIUFFO"
Allego un foglio di excel (estrazioni.zip) che riporta una tabella delle estrazioni del superenalotto, a fianco della tabella c'è la stessa tabella che è il risultato di ciò che vorrei ottenere dal ciclo (che non riesco a fare).
In sostanza devo togliere i numeri usciti nell'ultima estazione dalle estrazioni precedenti fino a quando rimane solo un numero (cella P96).
Ciao a tutti
Ecco la tabella che non riuscivo ad allegare:
Ti può andare bene così ?
Si può fare anche più istantaneo, con la riga a destra o a sinistra, doppio carburatore e controscappellamento :p
Ciao :)
Io ho pensato di fare così (vedi allegato), anche se la tua soluzione risulta più veloce in esecuzione (non capisco perchè).
Ti ringrazio molto ma mi trovo meglio facendo tutto da VB, senza ricorrere a moduli con funzioni che richiedono variabili dal foglio...
Potresti dare un'occhiata al mio code e vedere se è possibile fare in modo che il primo numero trovato venga evidenziato invece che cancellato insieme agli altri ?
Lo scopo è quello di eliminare i numeri estratti nell'ultima estrazione dalle precedenti ma vorrei evidenziare la prima occorrenza degli stessi.
Cioè se il primo estratto dell'ultima estrazione è l'8 vorrei evidenziare il primo trovato nelle estrazioni precedenti e cancellare gli altri.
Ciao e grazie
A' CIUFFO, schiusa né, non te la prendere, ma chi ti ha dato la patente; ossia ma chi ti ha insegnato a programmare ! :eek:
Ma quanto tempo ci mette ! :(
Comunque non ti preoccupare, se ti piace tutto da VB si fa tutto con un decimo (1/10) delle tue righe di codice e con un decimillesimo (1/10000) del tuo tempo di calcolo :cool:
Adesso però devo dare da mangiare ai pupi. :p
Ti mando tutto dopo cena.
Ciao e studia ! :p
Scusa la mia ignoranza, faccio il tabaccaio e riguardo il VB sono autodidatta da circa un anno.
Pian piano e sopratutto con i consigli di voi tutti cerco di migliorarmi.
Purtroppo non ho moltissimo tempo
Aspetto la tua risposta e grazie ancora.
devi scusare tu la mia indelicatezza :(
comunque l'ho appena provato sul PC che ho sottomano ora (un PIII 600MHz mi dicono (?)) e la tua tabella viene compilata (tutta da VB, 10 righe di codice) in meno di un centesimo di secondo (0.008 secondi) :)
Ti mando tutto da casa stasera.
Ciao
P.S.
Comunque scambierei volentieri la mia relativa "sapienza" di VB con i tuoi assoluti guadagni della tabaccheria ! :p :p
Ecco il tuo filtro tutto da VBA.
Fammi sapere.
Ciao :)
Grazie mille, il tuo codice funzia benissimo.
Volevo però riformulare la mia richiesta perchè forse non mi sono spiegato bene.
Fermo restando che il il tuo codice va bene, cioè cancella i numeri usciti dalle estrazioni precedenti o meglio scrive i numeri se non sono già usciti, io vorrei evidenziare i primi usciti (partendo dall'ultima estrazione) che ora vengono cancellati.
Cioè se con l'ultima estrazione esce ad esempio l'8 e nelle estrazioni precedenti è presente 5 volte, vorrei che venissero cancellati i quattro più vecchi evidenziando quello che è più vicino all'ultima estrazione, e così per gli altri cinque numeri dell'ultima estrazione.
In questo modo ottengo una tabella uguale a quella che già abbiamo ma con la differenza che ho evidenziato gli ultimi numeri eliminati .
Spero di essere stato abbastanza chiaro.
Ciao e grazie ancora.
Non riesco a capire i due punti (":"), dove ne parla la guida in linea di vb per excel?
Sub CIUFFO()
Dim OK(1 To 90) As Boolean
v1 = Range("O2:T128"): II = UBound(v1, 1): JJ = UBound(v1, 2)
ReDim v2(1 To II, 1 To JJ)
NOK = 0
For i = 1 To II: For j = 1 To JJ
If Not OK(v1(i, j)) Then
NOK = NOK + 1
OK(v1(i, j)) = True
v2(i, j) = v1(i, j)
End If
Next j
If NOK >= 90 Then Exit For
Next i
Range("V2:AA128") = v2
End Sub
Trovato nella giuda di vb5
Lo stesso codice si scrive in maniera più "leggibile" così:
Sub CIUFFO()
Dim OK(1 To 90) As Boolean
v1 = Range("O2:T128")
II = UBound(v1, 1)
JJ = UBound(v1, 2)
ReDim v2(1 To II, 1 To JJ)
NOK = 0
For i = 1 To II: For j = 1 To JJ
If Not OK(v1(i, j)) Then
NOK = NOK + 1
OK(v1(i, j)) = True
v2(i, j) = v1(i, j)
End If
Next j
If NOK >= 90 Then Exit For
Next i
Range("V2:AA128") = v2
End Sub
Non tenere conto dei due miei post che precedono questo perchè ti ho fatto una domanda alla quale ho già trovato la risposta.
Il mio quesito è questo:
Originally posted by "CIUFFO"
Grazie mille, il tuo codice funzia benissimo.
Volevo però riformulare la mia richiesta perchè forse non mi sono spiegato bene.
Fermo restando che il il tuo codice va bene, cioè cancella i numeri usciti dalle estrazioni precedenti o meglio scrive i numeri se non sono già usciti, io vorrei evidenziare i primi usciti (partendo dall'ultima estrazione) che ora vengono cancellati.
Cioè se con l'ultima estrazione esce ad esempio l'8 e nelle estrazioni precedenti è presente 5 volte, vorrei che venissero cancellati i quattro più vecchi evidenziando quello che è più vicino all'ultima estrazione, e così per gli altri cinque numeri dell'ultima estrazione.
In questo modo ottengo una tabella uguale a quella che già abbiamo ma con la differenza che ho evidenziato gli ultimi numeri eliminati .
Spero di essere stato abbastanza chiaro.
Ciao e grazie ancora.
Ho voluto generalizzare un po' permettendoti di evidenziare con colori diversi a piacere il diverso grado di occorrenza. :)
P.S.
Per la leggibilità: dipende da chi legge. :)
Comunque istruzioni contestuali e ausiliarie (p.es. calcolo dimensioni di una matrice dinamica) possono seguire la principale sulla stessa riga.
E' una questione del cosiddetto "stile" di programmazione che è importante soprattutto sia coerente per tutto il codice.
Se poi vuoi fare lo "sborone" puoi anche scrivere una istruzione per riga o anche andare a capo ogni lettera come Socmaker. :cool:
Lo scopo è evidenziare i numeri usciti dell'ultima estrazione.
Io ho fatto così, però ho dovuto fare due tabelle.
Vedi l'allegato.
Ciao e grazie.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.