Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

estrarre valori alfanumerici

Ultimo Aggiornamento: 23/02/2017 10:06
Post: 9
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 14:08

ciao,
chiedo vostro aiuto per fare la seguente cosa:

ho una stringa tipo questa ( tutta su una cella )

28.01.17 F 09:52 00900971 036946 COLLEFERRO GASOLIO 1 55,52 1,549 86,00 1,11 84,89 69,58 22,00 15,31

avrei bisogno di estrarre solo gli importi, ovvero in questo caso 55,52 - 1,549 - 86,00 - 1,11 - 84,89 - 69,58 - 22,00 - 15, 31 e di metterli ognuno in una cella ( orizzontalmente )

mi potete aiutare ?

la lunghezza e i campi all'interno della cella possono variare.

grazieeeeeeeeeeeeeeeeeee
Post: 9
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 14:11

ho omesso un particolare .... ovvero che su uno sheet ho tante righe da cui estrarre i valori numeri .... quindi in corrispondenza di ogni riga riempire tante colonne quanti siano gli importi ( ovvero quelli in cui compare la virgola)
gz
Post: 2.793
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 14:16

Ciao Paola

Allega un file di esempio in cui mostri le varie casistiche con cui possono presentarsi i record.

Uno solo è troppo poco.

Alfredo
Post: 334
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
ONLINE
22/02/2017 14:18

Ciao Stellablu
forse sarebbe il caso di allegare un tuo file (senza dati sensibili) su cui poter lavorare.
Penso a STRINGA.ESTRAI con le formule oppure a SPLIT con VBA.

Ciao,
Mario

PS - ciao Alfredo, mentre scrivo tu ti inserisci [SM=x423035]
[Modificato da Marius44 22/02/2017 14:19]
Post: 2.794
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 14:24

Re:
Marius44, 22/02/2017 14.18:


PS - ciao Alfredo, mentre scrivo tu ti inserisci [SM=x423035]



E ma io sono più giovane [SM=g27828] [SM=g27828] [SM=g27828]

Io avevo pensato anche al Testo in colonne successivamente a SRINGA.ESTRAI

Il problema è vedere i dati per calibrare correttamente STRINGA.ESTRAI


Alfredo
Post: 10
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 14:29

grazie
allego file ...

praticamente i valori da estrarre sono solo quelli con la "virgola" ... e li dovrebbe mettere dalla colonna in B in poi ..... ogni importo in una cella
Post: 2.795
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 14:37

Purtroppo la cosa è più complicata del previsto.

Occorrerebbe individuare un criterio univoco (che al momento non vedo) per differenziare gli importi da suddividere in colonne da tutto il resto.

Poi vedo anche che in alcuni record, nella parte dove ci dovrebbero essere solo importi, compare la parola "SELF"; come va considerata?

Alfredo
Post: 11
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 14:39

quella andrebbe eliminate ... SELF non mi interessa ... solo mettere in colonna i valori con virgola ..

" solo" ... ahhhaaaahhhhh [SM=x423038]

penso sia molto complicato ...
Post: 2.797
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 15:49

Ciao paola

Prova a vedere il file allegato.

Sul Foglio11 ci sono i dati suddivisi; dimmi se in base a quelli presenti su Sheet1 la suddivisione è corretta.

Alfredo
Post: 335
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
ONLINE
22/02/2017 16:09

Salve a tutti

Oltre all'ottimo lavoro di alfrimpa (complimenti Alfredo) prova ad usare questa macro
Sub Importi()
Dim ur As Long, i As Long, j As Integer, b As Integer, riga, testo As String
ur = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ur
    riga = Split(Cells(i, 1), " ")
    b = 2
    For j = 0 To UBound(riga)
        testo = riga(j)
        For k = 1 To Len(testo)
            If Mid(testo, k, 1) = "," Then
                b = b + 1
                Cells(i, b) = riga(j)
            End If
        Next k
    Next j
Next i
End Sub

Ovviamente da associare ad un pulsante (non ActiveX).
Fai sapere. Ciao,
Mario
Post: 2.798
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 16:16

Mario bravo ma hai dimenticato di dichiarare la variabile k as Integer.

Inutile dire che la macro funziona perfettamente.
[Modificato da alfrimpa 22/02/2017 16:17]

Alfredo
Post: 336
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
ONLINE
22/02/2017 16:25

Salve
Scusate ma è stata colpa della ... fretta perchè temevo che tu mi anticipassi ancora [SM=x423030]

Ciao e grazie per la giustissima osservazione,
Mario
Post: 2.800
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 16:27

Mario alla nostra età non ci dobbiamo "fare belli" [SM=g27828]

E poi io a scrivere una macro di quel tipo ci avrei messo una settimana e tu avresti avuto tutto il tempo (anche di andare a giocare con i tuoi nipotini).

Un caro saluto.

Alfredo
Post: 13
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 16:41

Alfredo :va benissimo .... grazieeee
ma come hai fatto ? non vedo formule ... è una macro ?

Mario: .... come dovrei integrare quel K ? me la puoi riscrivere ?

grazie e tutti
questo sito è MERAVIGLIOSO [SM=x423064]
Post: 337
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
ONLINE
22/02/2017 16:51

Ciao Stellablu
ti riporto il codice
Sub Importi()
Dim ur As Long, i As Long, j As Integer, k As Integer, b As Integer, riga, testo As String
ur = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ur
    riga = Split(Cells(i, 1), " ")
    b = 2
    For j = 0 To UBound(riga)
        testo = riga(j)
        For k = 1 To Len(testo)
            If Mid(testo, k, 1) = "," Then
                b = b + 1
                Cells(i, b) = riga(j)
            End If
        Next k
    Next j
Next i
End Sub


Ciao,
Mario
Post: 15
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
22/02/2017 17:05

GRAZIEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Post: 2.801
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
22/02/2017 17:27

Re:
stellablu79, 22/02/2017 16.41:

Alfredo :va benissimo .... grazieeee
ma come hai fatto ? non vedo formule ... è una macro
questo sito è MERAVIGLIOSO [SM=x423064]



No Paola era solo un tentativo manuale (fatto con le formule RICERCA e STRINGA.ESTRAI) giusto per vedere se ero sulla strada giusta.

Ma poi è arrivato Mario che mi ha fregato [SM=g27828]

Noto, con piacere, che hai iniziato anche tu a rispondere alle domande sul forum brava!

Ora non ti resta che iniziare a studiare un po' di VBA [SM=g27828] così potrai rispondere ad un numero sempre maggiore di quesiti (anche se anche con il solo Excel c'è una montagna di cose da sapere).

Comunque se hai bisogno di informazioni, consigli o altro non hai che da chiedere.
[Modificato da alfrimpa 22/02/2017 17:28]

Alfredo
Post: 16
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
OFFLINE
23/02/2017 08:02

[SM=g27817] sono una dilettante paragonata a voi ma adoro excel quindi qualcosina l ho imparata

Grazie ancora
Post: 2.804
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
23/02/2017 10:06

Ma ogni dilettante, prima o poi, diventa esperta no? [SM=g27828]

Alfredo
Vota: 15MediaObject5,00319 3
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 08:39. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com