Buongiorno,
grazie per il tuo contributo e celerità.
… tu vorresti una macro velocissima che…
..quando hai il risultato scendi dalla bici e …
Purtroppo la mia fantasia realizzativa è fortemente limitata dalla scarsa conoscenza di excel e delle sue potenzialità.
Quindi mi limito a ragionare in termini a me noti e delle ricerche sul web.
Se esistono metodi e/o differenti criteri per raggiungere una soluzione non mi è dato sapere.
Se ritieni che il mio metodo
.. sia fortemente penalizzante, in termine di velocita' di esecuzione…
…sarebbe molto più efficiente cancellare…
Allora adottiamo il tuo metodo, così resto sempre in bici.
Al riguardo spiego il semplice criterio di eliminazione delle righe di intervallo2.
In foglio 1 accanto ad ogni riga di intervallo1 nelle colonne X e Z ci sono 2 valori numerici;
La macro “JetCompare”, compara una riga di intervallo1 con tutte le righe di intervallo2.
Esempio: riga1 di intervallo1 con tutte le righe di intervallo2.
Completato il controllo, il risultato è disponibile nella matrice oArr;
per ogni item di oArr verifico se il suo valore è compreso tra X e Z di riga1 di intervallo1;
esempio: riga1 di intervallo1 : H10-V10 >>>> X10 = 1254, Z10 = 3587
item1 di oArr >>> oArr(1) >>> che corrisponde al risultato della prima riga di intervallo2
se oArr(1) >= X10 = 1254 ed oArr(1) <= Z10 = 3587
allora la riga1 di intervallo2 NON DEVE essere eliminata.
Segue confronto sempre di X10 e Z10, di riga1 di intervallo1, ma con risultato di riga2 di intervallo2
se oArr(2) < X10 = 1254 ed oArr(2) > Z10 = 3587
allora la riga2 di intervallo2 DEVE essere eliminata.
Non so se è meglio confrontare riga per riga ed procedere alla eventuale eliminazione, oppure prima popolare tutta la matrice oArr e poi eseguire l’eliminazione.
Inoltre non devono essere eliminate le righe di intervallo2 che non hanno nessun numero in comune
con la riga1 di intervallo1.
Segue confronto di riga2 di intervallo1 : H11-V11 >>>> X11 = 1305, Z11 = 2620
con tutte le righe di intervallo2, che per la eventuale eliminazione precedente, avrà un numero minore di righe.
Procedo come prima al confronto per la eliminazione.
Ripeto i passaggi per tutte le altre righe.
è importante conoscere il contenuto della matrice oArr solo per procedere alla eliminazione delle righe di intervallo2;
alla fine di tutto il calcolo il suo contenuto è inutile, così come non serve sapere quale linea è stata eventualmente eliminata.
Il risultato che interessa è il contenuto finale di intervallo2, intervallo che può essere anche vuoto se vengono eliminate tutte le righe.
Bisogna prevedere che se giunti al confronto tra rigaY di intervallo1 con intervallo2, quest’ultimo è già vuoto, per via delle eliminazioni precedenti, si deve uscire dalla procedura-macro.
Vedi se riesci col tuo criterio a farmi rimanere sempre in bici o meglio ancora su qualcosa di più comodo e veloce.
Ciao e grazie ancora, saluti