Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ELIMINARE CARATTERI IN UNA STRINGA

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

ELIMINARE CARATTERI IN UNA STRINGA

Postdi aresca » 04/12/09 12:29

Ciao, in una cella ho impostato la seguente formula:

=STRINGA.ESTRAI(H2;TROVA("mapp";H2)+5;6)

che trovando la stringa "mapp" in una cella mi restitutisce 6 caratteri partendo dalla posizione in cui trova "mapp"+5

Il mio porblema è di far si che il risultato di questa formula sia composta da soli numeri e non da numeri e testo in quanto a volte il numero seguente a "mapp" è composto da sole 2 cifre e quindi, nel risultato vengono incluse anche lettere o spazi o tutto quanto sia presente sino all'occorrenza di 6 caratteri. Mi spiego meglio

La cella h2 contiene: "mapp 72 Rossi"

e quindi il risultato della formula è

72 Ros

mentre io vorrei fosse solo

72

...grazie in ogni caso
aresca
Newbie
 
Post: 3
Iscritto il: 04/12/09 12:25

Sponsor
 

Re: ELIMINARE CARATTERI IN UNA STRINGA

Postdi Flash30005 » 04/12/09 13:14

Attraverso questa macro puoi avere qualsiasi lunghezza di stringa e qualsiasi lunghezza di numero per tutte le righe che hanno dei dati
in pratica estrae tutti i numeri contenuti in una stringa e li posiziona nella colonna A (modificabile con la variabile ColF)
RigaI è la riga di inizio (1)
ColI è la colonna dei dati (H)

Codice: Seleziona tutto
Sub CercaNum()
RigaI = 1    'Imposta la riga di inizio dei dati da processare
ColI = "H"   'Imposta la colonna da processare
ColF = "A"   'Imposta la colonna destinazione del numero trovato

UR = Range(ColI & Rows.Count).End(xlUp).Row
For RR = RigaI To UR
NumV = ""
    StrH = Range(ColI & RR).Value
    LStrH = Len(StrH)
    For Car = 1 To LStrH
        If Asc(Mid(StrH, Car, 1)) > 47 And Asc(Mid(StrH, Car, 1)) < 58 Then
            NumV = NumV & Mid(StrH, Car, 1)
        End If
    Next Car
Range(ColF & RR).Value = Val(NumV)
Next RR
End Sub


Per inserire la macro copia l'intero codice
e dal Menu Strumenti seleziona Macro > Visual basic Editor (oppure dal foglio premi Alt+F11)
dal Menu (del Vb) seleziona Inserisci > Modulo
incolli nella finestra del modulo il codice della macro
e avvii la macro

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ELIMINARE CARATTERI IN UNA STRINGA

Postdi aresca » 04/12/09 13:45

Ciao, sembra funzionare... l'unico problema che mi si presenta ( non ti ho detto in precedenza) è che alcune celle, come rislutato della formula che ho inserito, riportano

#VALORE!

...e quindi la macro va in runtime error '13' - tipo non corrispondente
e nel debug viene evidenziata in giallo la stringa

LStrH = Len(StrH)
aresca
Newbie
 
Post: 3
Iscritto il: 04/12/09 12:25

Re: ELIMINARE CARATTERI IN UNA STRINGA

Postdi Flash30005 » 04/12/09 14:21

Significa che hai delle formule all'interno di quelle celle
ci sono due righe da aggiungere alla macro ma la invio integralmente
quindi copia e sostituisci la precedente
Codice: Seleziona tutto
Sub CercaNum()
RigaI = 1    'Imposta la riga di inizio dei dati da processare
ColI = "H"   'Imposta la colonna da processare
ColF = "A"   'Imposta la colonna destinazione del numero trovato
UR = Range(ColI & Rows.Count).End(xlUp).Row
For RR = RigaI To UR
NumV = ""
    StrH = Range(ColI & RR).Value
     On Error Resume Next   '<<< riga aggiunta, "salta" sempre riga di codice in caso di errore
    LStrH = Len(StrH)
    For Car = 1 To LStrH
        If Asc(Mid(StrH, Car, 1)) > 47 And Asc(Mid(StrH, Car, 1)) < 58 Then
            NumV = NumV & Mid(StrH, Car, 1)
        End If
    Next Car
Range(ColF & RR).Value = Val(NumV)
On Error GoTo 0           '<<<<< riga aggiunta, ripristina a non "saltare" eventuali errori
Next RR
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ELIMINARE CARATTERI IN UNA STRINGA

Postdi aresca » 04/12/09 16:10

Perfetto...! Grazie infinite
aresca
Newbie
 
Post: 3
Iscritto il: 04/12/09 12:25

Re: ELIMINARE CARATTERI IN UNA STRINGA

Postdi Anthony47 » 04/12/09 16:25

Ciao aresca e benvenuto nel forum.
Se i dati sono come da esempio (una stringa contenente "mapp ", poi un numero, poi eventualmente uno spazio e altri caratteri), allora puoi anche usare solo formule, ad esempio:
Codice: Seleziona tutto
=--STRINGA.ESTRAI(H2;TROVA("mapp ";H2)+5;TROVA(" ";H2;TROVA("mapp ";H2)+6)-TROVA("mapp ";H2)-5)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "ELIMINARE CARATTERI IN UNA STRINGA":


Chi c’è in linea

Visitano il forum: raimea e 8 ospiti