| | Post: 115 | Registrato il: 09/04/2015
| Età: 45 | Utente Junior | 2013 | | OFFLINE | |
|
07/03/2017 11:21 | |
Ciao a tutti,
premetto non chiedetemi un file da esempio, non lo ho. Questa domanda è solo un'idea che mi è venuta in mente per alleggerire un codice. Più che altro volevo capire se è fattibile oppure no...
Cerco di spiegare la mia idea il più dettagliatamente possibile.
Col.A contiene n righe di date (gg/mm/yyyy)
Ho il seguente ciclo, che in base ad un mese prescelto, mi farà determinate operazioni, il problema è che il ciclo controlla tutte le righe anche se magari quelle relative al mese prescelto potrebbero essere poche:
for x=n to 1 step-1
MESE = Month(DATA)
...
next
Col.A potrebbe essere di qs tipo per fare un esempio il più chiaro possibile
Col. A
riga1 gg/1/yy
riga2 gg/1/yy
riga3 gg/1/yy
....
riga66 gg/3/yy
riga67 gg/3/yy
riga68 gg/3/yy
....
riga111 gg/7/yy
riga112 gg/7/yy
....
riga199 gg/7/yy
riga200 gg/7/yy
....
riga984 gg/12/yy
riga985 gg/12/yy
riga986 gg/12/yy
e così via
La mia idea constiste in questo:
Dato che il mese prescelto non sarebbe QUASI MAI (dico quasi xk saltuariamente potrebbe essere così) l'ultimo (nell'esempio sopra gg/12/yy), ma sempre uno dei mesi interni (gg/7/yy o gg/10/yy o ecc...); per esempio prendo il mese 7:
il ciclo for mi farà le operazioni da x=200 a x=111, poi ciclerà a vuoto fino a x=1;
quello che volevo sapere, c'è un modo per interrompere il ciclo for (per es. con Exit For) alla prima riga x, dopo l'intervallo del mese prescelto, nell'esempio fatto dovrebbe uscire dal ciclo alla riga 110.
Mi auguro di essermi riuscito a spiegare...
Grazie
|
|
| | Post: 1.967 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
07/03/2017 11:50 | |
ciao
ammettiamo di avere il tuo meseX di ricerca e questi sia = 7
il tuo ciclo for x
for x=n to 1 step-1
MESE = Month(DATA) ' penso che qui sia riferito al campo dove tu ai la data
if MESE < mesex then exit for
...
next
Ciao da locate
excel 2007 / 13 |
| | Post: 346 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
07/03/2017 11:55 | |
Ciao
premesso che un ciclo si può sempre interrompere inserendo una condizione, mi sembra quasi inutile quello che vorresti fare e ti spiego perché.
Ammettiamo che le tue date siano in ordine (crescente o decrescente ha poca importanza) quindi diciamo dal mese 1 al mese 12 o viceversa e tu vuoi i dati relativi al mese di giugno (6).
Col ciclo spazzoli sempre da 1 fino a 5 a vuoto, poi trovi i tuoi dati, poi spazzoli a vuoto fino a 12.
Quanto ha impiegato Excel? A meno che non si tratti di molte righe, ma veramente moooooolte, solo qualche decimo di secondo.
Attento, ho detto prima se le date sono in ordine. E se non lo fossero? E’ giusto che Excel scorra l’intera lista per trovare il mese che ti interessa.
Io lascerei tutto così.
Ciao,
Mario
|
| | Post: 115 | Registrato il: 09/04/2015
| Età: 45 | Utente Junior | 2013 | | OFFLINE | |
|
07/03/2017 11:59 | |
ahahah....
grazie mille, perdersi in un bicchier d'acqua |
| | Post: 116 | Registrato il: 09/04/2015
| Età: 45 | Utente Junior | 2013 | | OFFLINE | |
|
07/03/2017 12:02 | |
cambia molto poco in effetti!
ma siccome ho un codice molto lungo ed elaborato, stavo cercando di ottimizzarlo, ma in effetti questa procedura non mi varia assolutamente nulla....
appena testato!
grazie
|
|
|