Ah, la lista è contenuta in una colonna excel... questo avresti dovuto precisarlo subito, tienlo in mente per le prossime volte: Precisare ogni dettaglio utile.Originariamente inviato da haked88
si è pieno ma solo spiegazioni attraverso le funzioni.
la lista è così
ADELE
GIACOMO
LUIGI
""""""""
ADELE
GIACOMO
""""""""
finchè non si ferma per ora ho fatto
Sub ()
dim x as string
dim r as integer
x = inputbox (" nome")
for r = 1 to 30
if cells(r,1) = n then
...POI NN SO CONTINUARE... perchè mi chiede di contare quante volte si RIPETE X
Sono sicuro che in excel c'è una funzione apposita per fare queste ricerche nelle colonne, ma non la ricordo. Cerca sull'msdn una roba tipo range.find
Nel caso mi sbagli, io farei così:
un'array bidimensionale di stringhe arrStr (dove nella prima dimensione salvi i nomi, nella seconda le occorrenze del nome).
in pratica alla fine della procedura, l'array conterrà una roba tipo
[0] [1]
GINO 4
PINO 3
ANNA 15
ecc ecc.
una variabile stringa strTemp.
una funzione che faccia ricerche di stringhe in un'array bidimensionale e restituisca l'indice dell'elemento trovato oppure -1 se non trova niente.
for i=0 to 30
leggi il contenuto della cella, lo cerchi nell'array arrStr[x][0].
se è presente nell'array non fai nulla(vuol dire che hai già contato le occorrenze di quel nome)
se non c'è, lo inserisci nell'ultima posizione dell'array arrStr[x][0], aggiungi 1 ad arrStr[x][1] e poi fai
for x=i to 30
leggi il contenuto della cella x, lo confronti con l'ultimo elemento dell'array,
se sono uguali incrementi arrStr[ultimo elemento][1]
sennò non fai nulla
alla fine ordini l'array in modo decrescente per la sua dimensione [x][1] e il primo elemento sarà il più ricorrente nell'intervallo di celle.
sono sicuro che esista un metodo più semplice...

Rispondi quotando