Condividi:        

Rimozione parziale di caratteri nella cella

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

Rimozione parziale di caratteri nella cella

Postdi Ricky0185 » 03/10/23 09:10

Buongiorno, nelle celle della colonna E di un foglio ho testi di svariata lunghezza e tutti, in differente posizione, contengono la parola "Info". Vorrei eliminare (anche con macro) in ciascuna cella della colonna tutto il testo che segue la parola "Info", ivi compreso "Info". Ripeto che, sia prima che dopo la parola, le lunghezze del testo sono diverse per tutte le celle, perciò la posizione della parola è sempre diversa e non ha "segni particolari" quali Dopo punto piuttosto che Dopo spazio,Lunghezza prima, Lunghezza dopo, etc.
Saluti
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Sponsor
 

Re: Rimozione parziale di caratteri nella cella

Postdi Anthony47 » 03/10/23 10:38

Ad esempio in una colonna libera:
Codice: Seleziona tutto
=SE(E2="";"";SE(VAL.ERRORE(RICERCA("info";E2));E2;SINISTRA(E2;RICERCA("info";E2)-1)))
Dovrebbe essere compatibile col tuo Office 2003

Prova...
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Rimozione parziale di caratteri nella cella

Postdi Ricky0185 » 03/10/23 11:53

Aggiudicato. Prima o poi debbo incominciare a studiarmi le formule.
Una domanda: con macro, come faccio a dirgli cancellami da Info in avanti? Ovvio dopo avermi trovato la parola Info.
Grazie
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Rimozione parziale di caratteri nella cella

Postdi Anthony47 » 03/10/23 15:42

Se vuoi farlo con macro; ad esempio:
Codice: Seleziona tutto
Sub DeInfo()
Dim I As Long, fInfo As Long, myCurr As String
Dim myData As Range, myOut As Range, LastI As Long
'
Set myData = Range("E2")        '<<< Inizio dei dati
Set myOut = Range("H2")         '<<< Inizio per i dati corretti
'
LastI = myData.Offset(10000, 0).End(xlUp).Row
For I = 1 To LastI
    myCurr = myData.Cells(I, 1).Value
    If Len(myCurr) > 0 Then
        fInfo = InStr(1, myCurr, "info ", vbTextCompare)
        If fInfo = 0 Then fInfo = 9999
        myOut.Cells(I, 1).Value = Left(myCurr, fInfo - 1)
    Else
        myOut.Cells(I, 1).ClearContents
    End If
Next I
End Sub

Va inserita in un modulo standard del vba; i dati marcati <<< vanno adattati come da commento; nota che teoricamente myData e myOut potrebbero anche puntare alla stessa area, e quindi i dati originali sovrascritti con quelli rivisti, ma io sconsiglio questa soluzione perche' il risultato non sarebbe controllabile

Prova...
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Rimozione parziale di caratteri nella cella

Postdi Ricky0185 » 03/10/23 19:17

Naturalmente funziona. La preferisco ed inserirò in finale di altra macro che copia in excel le descrizioni chilometriche di versamenti bancari.
Ciao e grazie.
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38


Torna a Applicazioni Office Windows


Topic correlati a "Rimozione parziale di caratteri nella cella":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti