PDA

View Full Version : [EXCEL] Cerca Valore nei fogli


franksisca
19-01-2007, 22:23
ragazzi, sono una mazza in VBA, mi serve una funzione che faccia questo:

io ho una combobox, un pulsante e una textarea, voglio che mi cerchi la parola messa nella combobox in tutti i fogli, e se la trova, mi mette nella textarea il valore della cella A1.

vi spiego, nelle celle A1 di ogni foglio ci sono i nomi di tabelle, io nella combo metto il nome della persona che cerco, e voglio avere l'elenco delle tabelle in cui compare.

spero di essermi spiegato e che voi abbiate una soluzione, aspetto ansioso.

franksisca
20-01-2007, 14:45
ragazzi, naturalmente senza doppioni;)

franksisca
21-01-2007, 12:03
up domenicale.......:D:D:D

franksisca
22-01-2007, 21:04
uffi.......nessuno mi aiuta???

akyra
23-01-2007, 11:45
eccomi! ti aiuto io:

ti faccio l'upload del file excel contenente il codice che ti serve. Se premi il tasto "Avvia Scansione" la proceduta inizia e dovrebbe fare quello che ti serve...casomai se non capisci qualcosa chiedi pure....l'unico limite che ha la funzione è che scorre soltanto le prime 10000 righe di ogni foglio...naturalmente puoi aumentare il range di ricerca incrementando il valore della variabile rwIndex nella funzione "trovaParola".

...purtroppo l'algoritmo che esegue la ricarca è abbastanza lento (complessità O(n*m) con n=numero di celle per foglio, m= numero di fogli), dunque se il numero di righe e colonne che devi controllare è basso, l'algoritmo si comporta abbastanza velocemente, mentre se il prodotto tra quei due valori aumenta allora le prestazioni dell'algoritmo decadono...vedi tu insomma, se sai che dovrai sempre e solo cercare nelle celle comprese nel range 100*100 (100 righe * 100 colonne) allora ti consiglio di inserire quei valori come rwIndex e colIndex nella funzione trovaParola....altrimenti puio anche effettuare la ricerca in tutte le celle di ogni folgio (65000 righe * 256 colonne se non sbaglio), ma la funzione sarà parecchio lenta, soprattutto se la parola cercata non c'è nel foglio

franksisca
23-01-2007, 15:05
grazie