|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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 |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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. |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Re: Ciclo per tabella in excel
Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
A tuttoggi non riesco ad inserire l'allegato.
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Re: Ciclo per tabella in excel
Quote:
|
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Quote:
|
|
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Ti può andare bene così ?
Si può fare anche più istantaneo, con la riga a destra o a sinistra, doppio carburatore e controscappellamento ![]() Ciao ![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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 |
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
A' CIUFFO, schiusa né, non te la prendere, ma chi ti ha dato la patente; ossia ma chi ti ha insegnato a programmare !
![]() 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 ![]() Adesso però devo dare da mangiare ai pupi. ![]() Ti mando tutto dopo cena. Ciao e studia ! ![]() |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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. |
![]() |
![]() |
![]() |
#11 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
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 ! ![]() ![]() |
![]() |
![]() |
![]() |
#12 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Ecco il tuo filtro tutto da VBA.
Fammi sapere. Ciao ![]() |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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. |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Non riesco a capire i due punti (":"), dove ne parla la guida in linea di vb per excel?
Codice:
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 |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Trovato nella giuda di vb5
Lo stesso codice si scrive in maniera più "leggibile" così: Codice:
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 |
![]() |
![]() |
![]() |
#16 | |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
per a2000
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: Quote:
|
|
![]() |
![]() |
![]() |
#17 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
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. ![]() |
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
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. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:40.