Condividi:        

Excel Eliminare righe

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

Excel Eliminare righe

Postdi ik8ozv » 25/04/16 11:29

Salve,
ho un file che contiene circa 100000 righe.
ci sono righe contengono in una cella un dato che termina con un !
altre righe o sono con la cella del dato vuota o che contiene un dato senza il ! oppue ancora che contine solo un *
Avrei bisogno di eliminare l'intero rigo che ha la cella dato Vuota o con * oppure con il solo dato.
In poche parole mi debbono restare solo le righe che hanno la cella con il dato con il !.
Spero di essere stato chiaro.
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Sponsor
 

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 11:39

Ciao Enzo

Provancon questa macro (che poi è quasi identica all'altra).


Codice: Seleziona tutto
Sub elimina()
Dim ur As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("a1:a" & ur)
For Each cel In rng
    If Right(cel.Value, 1) = "!" Then
        cel.EntireRow.Delete
    End If
Next cel
End Sub
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 12:37

Ciao Alfredo,
grazie purtroppo non ha funzionato
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 13:51

Allora devi allegare un file di esempio.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 14:21

alfrimpa ha scritto:Allora devi allegare un file di esempio.


Allego un esempio:

AE0010| CHIESA DI SAN BRIZIO|AO | | ======>> Eliminare Riga intera
AE0010| CHIESA DI SAN BRIZIO|AO | * | ======>> Eliminare Riga intera
AE0010| CHIESA DI SAN BRIZIO|AO | IK8OZV/P | ======>> Eliminare Riga intera
AE0010| CHIESA DI SAN BRIZIO|AO | IK8OZV/P ! | ======>> Da non Eliminare Nulla

Come vedi sono 4 colonne.
La quarta colonna e' quella da controllare.
Nella prima riga la quarta cella e' vuota per cui deve eliminare tutta la riga.
Nella Seconda riga la quarta cella contiene un asterisco per cui deve eliminare tutta la riga.
Nella Terza riga la quarta cella contiene il dato senza il "!" per cui deve eliminare tutta la riga.
Nella Terza riga la quarta cella contiene il dato con il "!" per cui NON VA ELIMINATO NULLA.
Inoltre dopo fatto questo dovrei importare un altro file simile a questo corretto ma vorrei fare in modo
che lo importi nella stessa pagina in modo da poi compararli manualmente.
Spero di essere stato chiaro in cio' che mi serve fare.
Grazie ancora.
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 15:01

Enzo ė meglio che alleghi un file perchè così nin riesco a capire bene come sono scritti i dati nelle celle.

Se ho capito bene vanno eliminate le righe che non hanno il punto esclamativo. Corretto?

Altro punto: prima o dopo il punto esclamativo ci sono spazi?

È per questo che ti chiedevo un file rappresentativo della tua situazione.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 15:19

Alfredo,
Ti rispondo:
Si vanno eliminate le righe senza il punto esclamativo.

Tra il dato ed il punto esclamativo ci sono dei spazi ma sempre nella stessa cella.

Ho riportato il file com'è delimitando le celle con il "|"

Grazie
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 15:59

Dopo il punto esclamativo c'è uno spazio?

Comunque sostituisci nel codice l' "=" con "<>" prima del punto esclamativo e riesegui la macro.

Comunque se allegavi il file perdevamo meno tempo.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi wallace&gromit » 25/04/16 16:35

Ma non era più semplice fare un filtro automatico con la condizione "contiene" il testo "!"?
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 16:51

alfrimpa ha scritto:Dopo il punto esclamativo c'è uno spazio?

Comunque sostituisci nel codice l' "=" con "<>" prima del punto esclamativo e riesegui la macro.

Comunque se allegavi il file perdevamo meno tempo.


Scusa ma ti debbo allegare un file di gb????
E come lo allego?
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 16:54

No basta, come l'altra volta, qualche decina di righe che contenga tutti i casi possibili.

Lo aleghi con Filedropper o simili.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 18:13

Caricato.
Il link e' questo.

http://www.filedropper.com/accrik8ozv

Dimmi se e' sufficiente
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 19:00

Ciao Enzo

Prova con questa macro

Codice: Seleziona tutto
Sub elimina()
Dim i As Long
Dim ur As Long
ur = Cells(Rows.Count, 3).End(xlUp).Row
For i = ur To 1 Step -1
    If Right(Range("c" & i).Value, 1) <> "!" Then
        Range("c" & i).EntireRow.Delete
    End If
Next i
End Sub
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 19:29

Ciao Alfredo,
ho creato ed eseguito la macro sul file originale.
Sembra funzionare solo che ho notato che le ultime 8 righe
che dovrebbero essere eliminate, non sono state eliminate.
Come mai?

Inoltre e possibile effettuare il secondo passaggio?
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 19:37

Non avendo il file originale non saprei dire.

Si un secondo passaggio lo puoi fare rieseguendo la macro (al massimo non succede nulla).

Certo che su 100.000 righe un margine di errore di 8 sia accettabile :D; scherzo ovviamente mi sembra strano perchè dovrebbe eliminare tutte le righe senza "!".

Puoi mettere in un file le 8 righe?
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 19:47

oops scusa ma non mi sono accorto di aver messo uno zero in piu'.
Me l'ho hai fatto notare solo ora volevo dire circa 10.000 linee, infatti sono precisamente
11.829 che poi tendano a salire quando aggiorno il file.
Chiedo scusa per l'inconveniente.

Mi chiedi di mettere in un file le 8 righe i quali ti ripeto sono le ultime 8 del file.
Una volta immessi in un file, cosa fare caricarlo sil filedropper?
Grazie e scusa ancora
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 20:21

Ma la macro l'hai rieseguita? Cosa è successo?

Copia le otto righe su un nuovo file e riallegalo con filedropper.

Comunque credo che su Filedropper si possano allegare file fino a 5 gb per cui se nel tuo non ci sono dati sensibili credo che puoi mettere l'intero file.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi ik8ozv » 25/04/16 20:35

Alfredo allora partiamo dall'inizio.
a questo link:

http://www.filedropper.com/award

ti ho postato l'intero file il quale lo avevo caricato in excel col comando "carica dati esterni".
Forse l'ho caricato male percio' non funge in tutto.
Grazie
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Excel Eliminare righe

Postdi alfrimpa » 25/04/16 20:59

Ciao Enzo

Ho aperto il file txt e l'ho importato in Excel; invece delle 4 colonne che tu hai detto ne sono venute fuori 15 ed il punto esclamativo è presente su dodci di queste dalla E alla O.

Puoi rielaborare tu il file txt e tirare fuori le 4 colonne che ti interessano in modo da determinare qual è la colonna su cui fare il controllo ed eliminare le righe che non presentano il "!"?
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excel Eliminare righe

Postdi Anthony47 » 25/04/16 21:08

Alfredo, credo che tu abbia usato "spazio" per separare i campi del file txt, mentre la separazione dovrebbe essere del tipo "larghezza fissa".
Questi equivoci comunque il buon ik8ozt dovrebbe evitare di crearli, basterebbe che allegasse UN FILE e non delle informazioni a piacere... :evil: Per come allegare un file guardare qui: viewtopic.php?f=26&t=103893&p=605487#p605487

Comunque prendendo per buono che il suo file aveva 100mila righe ho immaginato che una macro che elimina una riga alla volta avrebbe potuto portare via parecchio tempo; per cui avevo sviluppato questa che fa affidamento su un array e quindi avrebbe dovuto essere piu' veloce:
Codice: Seleziona tutto
Sub CheZZ()
Dim vA1, vA2(), LastA As Long, LastCol As String, I As Long
Dim OutSh As String, J As Long, K As Long
'
LastCol = "D"       '<<< L'ultima colonna da considerare
OutSh = "Foglio2"   '<<< Il foglio dove si copieranno i dati filtrati
'
LastA = Cells(Rows.Count, 1).End(xlUp).Row
colnum = Cells(1, LastCol).Column
ReDim vA2(1 To LastA, 1 To colnum)
vA1 = Range("A1").Resize(LastA, colnum).Value
For I = LBound(vA1, 1) To UBound(vA1, 1)
    If Right(" " & vA1(I, colnum), 1) = "!" Then
        J = J + 1
        For K = LBound(vA1, 2) To UBound(vA1, 2)
            vA2(J, K) = vA1(I, K)
        Next K
    End If
Next I
Sheets(OutSh).Range("A1").Resize(LastA, colnum).Value = vA2
MsgBox ("Completato...")
End Sub

Le righe marcate <<< vanno adattate al tuo caso, indicando la colonna ultima dell'intervallo da esaminare (quella che conterra' o meno il "!") e il foglio in cui l'elenco filtrato verra' copiato (teoricamente puo' essere lo stesso foglio di origine, ma lo sconsiglio).
Selezionare il foglio con l'elenco originale ed eseguire la macro; l'elenco verra' ricreato nel nuovo foglio filtrando solo le righe volute.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel Eliminare righe":


Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti