Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 15-03-2009, 18.11.20   #1
silvershadow70
Newbie
 
Registrato: 14-02-2009
Messaggi: 7
silvershadow70 promette bene
[Excel VBA] Estrarre numeri da stringa alfanumerica

Salve a tutti!..

Come posso fare per estrarre dei numeri (si tratta più precisamente di un importo) da una stringa alfanumerica di una cella Excel?

Il dato contenuto nella cella è groosomodo del tipo "xxxxxx prezzo EUR nnn,nn yyyy.." vorrei che nella cella accanto comparisse solo il valore nnn,nn ... le varie xxx e yyy... non sono mai costanti ne come lunghezza ne come caratteri.

Ho provato con stringa.estrai ma non sono riuscito a trovare la modalità giusta.

Non so se è fattibile tramite formula oppure necessito di una routina VBA...

Qualcuno ha già affrontato questo problema..?


grazie!
silvershadow70 non è collegato   Rispondi citando
Vecchio 15-03-2009, 18.41.29   #2
silvershadow70
Newbie
 
Registrato: 14-02-2009
Messaggi: 7
silvershadow70 promette bene
Ho fatto un passo avanti (ricerca su Google..)

con questa macro:
Function estrai_cifre(s As Range) As Long
Dim T As String
Dim C As String
Dim i As Integer
Application.Volatile True
T = s.Value
C = ""

For i = 1 To Len(T)
If Mid(T, i, 1) <= "9" And Mid(T, i, 1) >= "0" Then
C = C + Mid(T, i, 1)
End If

Next i
estrai_cifre = Val(C)

End Function

estraggo i numeri di una stringa ... ma solo quelli ... volgio dire il numero xxx,xx non lo estraggo.. come posso fare per includere anche la virgola???


silvershadow70 non è collegato   Rispondi citando
Vecchio 16-03-2009, 03.31.23   #3
pietrol
Newbie
 
Registrato: 19-01-2009
Messaggi: 16
pietrol promette bene
Ciao silvershadow70
prova la macro così modificata:

Function estrai_cifre(s As Range) As Double
Dim T As String
Dim C As String
Dim i As Integer
Dim IsNumero As Boolean
Application.Volatile True
T = s.Value
C = ""
IsNumero = False
For i = 1 To Len(T)
If Mid(T, i, 1) = "," And IsNumero = True Then
C = C + ","
IsNumero = False
End If
If Mid(T, i, 1) <= "9" And Mid(T, i, 1) >= "0" Then
C = C + Mid(T, i, 1)
IsNumero = True
Else
IsNumero = False
End If
Next i
estrai_cifre = CDbl(C)

End Function

oppure, SOLO se la cifra è sempre preceduta dalla stringa "EUR " questa funzione:
=STRINGA.ESTRAI(B10;TROVA("EUR";B10;1)+4;TROVA(" ";B10;TROVA("EUR";B10;1)+4)-(TROVA("EUR";B10;1)+4))

ciao
pietrol
pietrol non è collegato   Rispondi citando
Vecchio 17-03-2009, 00.18.05   #4
silvershadow70
Newbie
 
Registrato: 14-02-2009
Messaggi: 7
silvershadow70 promette bene
ok grazie!!
al momento sto utilizzando solo la seconda che è in effetti di utilizzo immediato, dato che i valori sono sempre preceduti da EUR, tuttavia c'è un caso in cui non funziona al 100%.
Praticamente alcune volte capita che nella stringa c'è scritto "... EUR XXX,XX,.." in sostanza con la forula STRINGA:ESTRAI viene estratta anche la seconda virgola e quindi il risultato finale sarà per esempio 300,15, ...
C'è qualche modo per perfezionare la formula?


grazie in anticipo
silvershadow70 non è collegato   Rispondi citando
Vecchio 17-03-2009, 01.11.11   #5
pietrol
Newbie
 
Registrato: 19-01-2009
Messaggi: 16
pietrol promette bene
Ciao silvershadow70
prova così e fammi sapere.

=SOSTITUISCI(SOSTITUISCI(STRINGA.ESTRAI(B10;TROVA( "EUR";B10;1)+4;TROVA(" ";B10;TROVA("EUR";B10;1)+4)-(TROVA("EUR";B10;1)+4))&"ç";",ç";"");"ç";"")

ciao
pietrol
pietrol non è collegato   Rispondi citando
Vecchio 25-03-2009, 11.44.31   #6
silvershadow70
Newbie
 
Registrato: 14-02-2009
Messaggi: 7
silvershadow70 promette bene
ciao,

rieccomi ... questa volta restituisce errore .. (VALORE...)
sto facendo alcuni confronti con l'altra ma nn riesco ancora a trovare l'errore...
silvershadow70 non è collegato   Rispondi citando
Vecchio 25-03-2009, 11.47.09   #7
silvershadow70
Newbie
 
Registrato: 14-02-2009
Messaggi: 7
silvershadow70 promette bene
arieccomi ... oops !!!
avevo fatto un errore io ......... sembra che funzioni .. ti facio sapere


grazie!
silvershadow70 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[Excel 2003] solo numeri sugli assi crazy.cat Office suite 3 12-03-2008 12.03.44
Comparazione e ripetizione di numeri comtrex Programmazione 1 21-07-2006 23.11.03
[Excel VBA] Testo a capo in una List Box Gabry Office suite 3 16-01-2006 16.24.33
[Excel] Generare numeri con precise caratteristiche Lionsquid Office suite 9 07-05-2005 19.54.11
Inserire due diversi numeri di pagine in word LUCAB Office suite 3 14-03-2005 16.53.58

Orario GMT +2. Ora sono le: 02.45.48.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.