Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ottimizzare MACRO elimina parole da un testo

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

Ottimizzare MACRO elimina parole da un testo

Postdi g.campatelli » 20/12/15 12:30

Buongiorno a tutti.

Vi scrivo per sapere se potete aiutarmi a ottimizzare una Macro.

Io ho una cartella di lavoro di Excel. Nel foglio1 ho un testo molto lungo diviso in varie celle, nel foglio2 ho un elenco di parole (circa 20000) ognuna in una cella diversa nella colonna A.

Quello che vorrei fare io è eliminare ogni parola che si trova nell'elenco del foglio2 dal testo che si trova nel foglio 1.

la Macro che utilizzo io sfrutta il Trova (la parola) e Sostituisci (con una spazio) ed è questa, ma ci mette cmq tantissimo.

Codice: Seleziona tutto
Sub EliminaParole ()
Dim Parola As String
Dim N As Integer

For N = 1 To 21570

Parola = ActiveWorkbook.Sheets("Foglio2").Cells(1, 1)

Sheets("Foglio1").Select
    Cells.Replace What:=Parola, Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
       
Sheets("Foglio2").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Next N
End Sub


Esiste un modo per ottimizzarla e renderla ancora più veloce?

Ad esempio copiare l'intero testo in un nuovo foglio senza le parole che sono nell'elenco del foglio2?

Vi ringrazio del prezioso aiuto che potrete darmi e vi auguro felici feste.

Giordano
g.campatelli
Utente Junior
 
Post: 16
Iscritto il: 01/11/15 09:22

Sponsor
 

Re: Ottimizzare MACRO elimina parole da un testo

Postdi Anthony47 » 20/12/15 16:46

Puoi modificare la macro come segue e certamente sara' piu' veloce di come e' ora:
Codice: Seleziona tutto
Sub EliminaParole ()
Dim Parola As String
Dim N As Integer

Sheets("Foglio1").Select
Application.ScreenUpdating = False
For N = 1 To 21570
Parola = ActiveWorkbook.Sheets("Foglio2").Cells(N, 1)
'Sheets("Foglio1").Select
    Cells.Replace What:=Parola, Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
       
'Sheets("Foglio2").Select
'Rows("1:1").Select
'Selection.Delete Shift:=xlUp
Next N
Application.ScreenUpdating = True
Msgbox("Completato...")
End Sub

Ho pero' il sospetto che questa macro (che e' la tua) se elimina "Monte" ti cambia anche Montenapoleone in napoleone; se cosi' fosse e cio' ti da fastidio allora modifica LookAt:=xlPart in LookAt:=xlWhole
Probabilmente potrebbe ancora essere velocizzato, ma per provare le varie tecniche servirebbe un file dimostrativo con un testo rappresentativo in Foglio1 e almeno 5000 parole da controllare in Foglio2.

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

Re: Ottimizzare MACRO elimina parole da un testo

Postdi g.campatelli » 21/12/15 21:16

Grazie Mille ancora, funziona tutto come deve!!
g.campatelli
Utente Junior
 
Post: 16
Iscritto il: 01/11/15 09:22


Torna a Applicazioni Office Windows


Topic correlati a "Ottimizzare MACRO elimina parole da un testo":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti