Vediamo come estrarre velocemente una parte di testo da una cella di Excel senza dover ricorrere alla funzione STRIGA.ESTRAI
Ad esempio immaginiamo di avere in una cella Excel questo testo:
Andrea Perotti – In The Name Of Blog – www.andreaperotti.ch – Lugano
Abbiamo bisogno di estrarre il testo www.andreaperotti.ch dalla cella.
Chiaramente il testo contenuto nella cella deve essere delimitato ad esempio:
Nome, Cognome, Indirizzo (in questo caso i “pezzi” sono delimitati dalla virgola)
Procediamo quindi in questo modo:
Aprire la finestra di VBA:
In Excel XP o 2003:
Menù Strumenti – Macro – Visual Basic Editor
In Excel 2007:
Bottone di Office – Pulsante Opzioni di Excel – Impostazioni generali – Opzione “Mostra scheda Sviluppo sulla barra multifunzione”
A questo punto ritornando nella finestra di Excel verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic
Nella finestra Visual Basic inserire un nuovo modulo (menù Inserisci – Modulo) e copiare il codice riportato sotto:
Function GetStringPart(strInput As String, strDelimiter As String, _ intPart As Integer) As String Dim varStrings As Variant varStrings = Split(strInput, strDelimiter, -1, vbBinaryCompare) On Error Resume Next GetStringPart = Trim(varStrings(intPart - 1)) On Error GoTo 0 End Function
Chiudere quindi la finestra di Visual Basic e tornare in Excel.
A questo punto immaginiamo che nella cella A5 sia presente questo testo:
Andrea Perotti – In The Name Of Blog – www.andreaperotti.ch – Lugano
Nella cella H5 abbiamo bisogno di visualizzare solo il testo www.andreaperotti.ch
La formula che dovremo inserire nella cella H5 è la seguente:
=GetStringPart(strInput;strDelimiter;intPart)
Dove:
strInput: è la cella che contiene il testo completo
strDelimiter: è ciò che delimita una parte di testo dall’altra (tra virgolette ” “)
intPart: è la posizione del testo che vogliamo estrarre
Nel nostro caso quindi la funzione risulterebbe:
=GetStringPart(A5;”-”;3)
Se vogliamo rendere disponibile questa funzione in modo tale da trovarla all’avvio di ogni cartella di Excel possiamo creare un componente aggiuntivo come specificato qui.
technorati tags: Microsoft, Excel, Estrarre, Testo, Celle, Stringa, GetStringPart, Funzioni
Related posts:













Ho un grosso problema. Ho convertito tabelle in pdf in excel ed il programma invece di mettermi tutte le righe in diverse celle mi ha messo tutto in una cella, andando a capo.vorrei chiedere se con vba posso estrarre questi testi. La variabile è: andare a capo.
Ringrazio e saluto
umberto
Umberto per estrarre testo da una cella e disporlo su più celle puoi usare la funzione STRINGA.ESTRAI oppure il comando “Testo in colonne”.