Condividi:        

Excel estrapolare dati da stringa tramite vba

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel estrapolare dati da stringa tramite vba

Postdi Francesco53 » 27/11/17 12:12

Buongiorno a tutto il Forum,
ho la seguente necessità riesco ad estrapolare i dati da una stringa tramite funzioni excel,
ora io vorrei capire (sono un autodidatta e pertanto ho ancora tanti limiti) come fare per
ottenere gli stessi risultati tramite codice vba excel.
Vi scrivo le funzioni che utilizzo in diverse celle.
La stringa prima si trova nella cella A3, la seconda in B3.
io con la seguente funzione estrapolo la prima parte sino al primo spazio
e la scrivo nella cella F3
Codice: Seleziona tutto
=STRINGA.ESTRAI(A3; 1; TROVA(" ";A3))

dopo con quest'altra estrapolo la seconda parte e la scrivo nella cella G3
Codice: Seleziona tutto
=DESTRA(A3;LUNGHEZZA(A3)-RICERCA(" ";A3))

poi estrapolo dalla cella B3 i primi caratteri sino al "-" che scrivo nella cella Q3
Codice: Seleziona tutto
=DESTRA(B3;LUNGHEZZA(B3)-RICERCA("-";B3))

ed infine nella cella I3 estrapolo la parte che mi interessa
Codice: Seleziona tutto
=SOSTITUISCI(STRINGA.ESTRAI(Q3; 1; TROVA("-";Q3));"-";"")

Ringrazio chi può darmi un aiuto a scrivere il codice vba.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: Excel estrapolare dati da stringa tramite vba

Postdi Marius44 » 27/11/17 17:59

Ciao Francesco
Di solito, per non far fatica a chi volesse aiutarti, si allega un file.
Visto che non l'hai allegato avresti dovuto dire quali sono le due frasi iniziali per capire dove sono gli spazi o la lineetta.
Ho provato a mettere su un foglio le formule che hai indicato ma, in I3, non mi spunta nulla. La cella è vuota.
In A3 ho messo: estrazione di stringhe
In B3 ho messo: come-fare (una prima volta) ovvero -come fare (una seconda volta).

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Excel estrapolare dati da stringa tramite vba

Postdi Francesco53 » 27/11/17 18:38

Buonasera Mario e grazie per l'interessamento, allego file esempio
con le relative funzioni che vorrei poter elaborare tramite macro vba.
https://www.mediafire.com/file/44x7jb80y45o5nd/PcFacile%20Stringhe.xlsb

Grazie
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Excel estrapolare dati da stringa tramite vba

Postdi Marius44 » 27/11/17 19:37

Ciao
Seguimi passo-passo

Passo 1
Nel Foglio1 del file seleziona "Inserisci => Forme" e seleziona una forma qualsiasi. Seleziona una cella libera del Foglio e fai clic. Ridimensiona la forma come ti pare.

Passo 2
Sempre dal tuo Foglio1 clicca insieme ALT+F11 e si apre l'Editor di VBA. In alto trovi "Inserisci"; seleziona Modulo (attento: non Modulo di Classe). Si apre un frame bianco. Copia la macro sottostante e incollala in questo riquadro bianco.

Passo 3
Torna al tuo Foglio1. Seleziona col tasto destro del mouse la forma che hai inserito prima (passo 1) e nella finestra che si apre seleziona Assegna macro e quindi scegli il nome che appare nella finestra di dialogo (dovrebbe essere l'unico che, comunque è "incrocia").

Passo 4
Finito

Non devi far altro che cliccare sulla forma e vedrai i dati riportati come vuoi.
Ecco la macro
Codice: Seleziona tutto
Sub incrocia()
ur = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To ur
    TextONE = Cells(i, 1).Value 'dato in col.A
    TextTWO = Cells(i, 2).Value 'dato in col.B
    UNO = Split(TextONE, " ")
    DUE = Split(TextTWO, "-")
   
    'prima parte
    If UNO(0) = "Mercredi" Then
        giorno = "Mercoledì"
    ElseIf UNO(0) = "Lundi" Then
        giorno = "Lunedì"
    ElseIf UNO(0) = "Samedi" Then
        giorno = "Sabato"
    End If
    Cells(i, 6) = giorno
    Cells(i, 7) = UNO(1)
   
    'seconda parte
    For j = 0 To 4
        Cells(i, j + 8) = DUE(j)
    Next j
Next i
End Sub


Non ti allego il file per ... farti imparare e per non farmi tirare le orecchie dal Moderatore (non posso darti la pappa pronta, anche se ci siamo vicini).

Se hai difficoltà, lancia un ... SOS
Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Excel estrapolare dati da stringa tramite vba

Postdi Francesco53 » 27/11/17 23:05

Grazie Mario, sei veramente bravissimo,complimenti.
Provato la macro ed è perfetta.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45


Torna a Applicazioni Office Windows


Topic correlati a "Excel estrapolare dati da stringa tramite vba":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti