Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Ricerca di un valore... di Textomb data: 02/11/2012 18:35:58
Salve a tutti.
mi capita spesso di avere l'esigenza di conoscere in quale colonna si trova un dato valore (stringa o numerico).
Faccio un esempio.
Ho una tabella in cui i capi colonna sono i mesi dell'anno (gen, feb, mar, ecc.. ecc..) e, per esempio, questi sono registrati nel mio foglio nel Range("b1:m1").
Per estrarre la colonna in cui si trova un determinato mese che scrivo nella cella [a1] io scrivo come qui sotto.
Esiste un modo diverso e più corretto?
grazie mille
Dim NameMese as String, ColumnMese as Byte
NameMese=ActiveSheet.Range("a1")
ColumnMese = ActiveSheet.Range("b1:m1").Find(what:=NameMese, LookIn:=xlValues, lookat:=xlWhole).Column
MsgBox ColumnMese
di HarryBosch data: 02/11/2012 19:45:03
Ciao Textomb
il metodo Find è sicuramente molto efficace; anch'io utilizzo questo sistema.
Si può stringere qualcosina, del tipo:
ColumnMese = [b1:m1].Find([a1]).Column
se cerchi una stringa non serve il Whole e visto che ti trovi già sul foglio attivo si può togliere il riferimento.
di Vecchio Frac data: 02/11/2012 21:59:51
Confermo, quoto e sottoscrivo :)
HarryBosch è stato perfetto.
Lo sto contagiando, evidentemente, con la mia mania per la concisione e il risparmio delle variabili ^_^
cit. " Esiste un modo diverso e più corretto? "
---> Secondo me questo è il modo più excelliano per ricercare un valore in un range (potremmo spingerci a filosofeggiare su WorksheetFunction.HLookup o, stringato, [HLOOKUP], ma bisognerebbe star lì a misurare i decimi di secondo sulle prestazioni di insieme, e su tabelle piccole il guadagno o la perdita sono trascurabili).
di Textomb data: 02/11/2012 23:37:04
Ciao HarryBosch
grazie per il tuo intervento.
In effetti mi accorgo di essere molto "lungo" quando scrivo.
Vorrei imparare ad essere più sintetico. Mi sembra più elegante ed efficace.
Grazie alla prossima.
di Textomb data: 02/11/2012 23:38:51
Ovviamente i ringraziamenti vanno anche a Vecchio Frac che conferma, quota e sottoscrive quanto assunto da Harry...