Condividi:        

Excel 2003 - eliminare riga secondo contenuto

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 2003 - eliminare riga secondo contenuto

Postdi simon@ » 01/07/11 13:26

Buongiorno a tutti/e!
Avrei la seguente necessità:
ho un file in excel composto da più colonne e righe, avrei bisogno di una macro per eliminare interamente le righe che contengono in una determinata cella un dato che nel mio caso specifico è M03, qualcuno di voi saprebbe aiutarmi per cortesia?
Grazie
Ciao
simon@
Newbie
 
Post: 5
Iscritto il: 01/07/11 13:17

Sponsor
 

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 01/07/11 14:05

Ciao Simon@ e benvenuta nel Forum

Una macro si può realizzare se si hanno le coordinate della cella (colonna) che contiene la stringa da te menzionata

Quella stringa sta sempre nella stessa colonna?
Le righe sono variabili da colonna a colonna?

Con le informazioni generiche ti posso solo dare un input che potrai adattare alle tue esigenze e supponendo che quella stringa "M03" sia sempre nella stessa colonna
Codice: Seleziona tutto
Sub EliminaRighe()
 Worksheets("Foglio1").select ' Seleziona il foglio che ti interessa (Foglio1 in questo caso)
UR =Range("A" & Rows.Count).End(xlUp).Row '<<<< questo codice conta le righe nella colonna A

For RR = Ur to 1 step -1   '<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
If Range("B" & RR).value = "M03"   then '<<<<< condizione che il valore della riga RR colonna B sia = "M03"
Rows(RR & ":" & RR).Delete Shift:=xlUp  '<<< in caso positivo cancella la riga altrimenti prosegue la scansione
end if
Next RR
End Sub

Copia questa macro, incollala in un modulo, modifica il nome foglio e la colonna di ricerca
Ora se sai adattarla alla tua esigenza bene altrimenti posta ancora

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi simon@ » 04/07/11 09:48

Grazie Flash!!
Ahimè ho avuto una brutta sorpresa stamattina... hanno cambiato completamente l'impostazione del file, quindi quanto mi hai spiegato non mi è più utile per il risultato che volevo otternere :cry: (nemmeno il tempo per una prova!! :x )
Se posso approfittare, volevo sapere se fosse possibile mediante una macro eliminare delle righe che contengono un codice alfanumerico, mi spiego meglio:
ho un foglio in excel composto da 8 colonne e righe variabili, nella colonna D vengono riportati dei codici alfanumerici che indicano un fornitore, siccome in questo elenco ci sono una serie di fornitori che non vanno considerati (circa una ventina) volevo eliminare/nascondere le righe che non mi interessano... qualche indicazione?
Grazie in anticipo...
Bye bye
simon@
Newbie
 
Post: 5
Iscritto il: 01/07/11 13:17

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 04/07/11 11:22

Un conto è eliminare e un altro nasconderle
per fare qualcosa di "elegante" bisognerebbe avere maggiori dettagli e analizzare cosa hanno in comune questi fornitori

però potresti anche fare un elenco dei fornitori che non ti interessano in un secondo foglio
nel quale metterai NomeFornitore e, a fianco, un numero (1 ad esempio) o simbolo "*" (asterisco) etc
In una colonna "comoda per te" la nona o decima del primo foglio metterai un cerca.verticale del Fornitore (non so se è nella colonna A), della matrice che hai creato nel secondo foglio inserendo come indice 2, e, se l'ordine è alfabetico metterai 1, altrimenti 0

Una volta trascinata la formula per tutte le righe del foglio1
potrai filtrare tutte le righe che non hanno l'asterisco nella colonna da te creata.

Se va bene così ok altrimenti ti modifico la macro che elimina le righe corrispondenti al fornitore dell'elenco creato nel foglio2

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi simon@ » 04/07/11 15:44

Rieccomi!! Grazie per la dritta Flash...
...ma credo di aver sbagliato qualcosa; nella colonna della ricerca verticale mi rende i seguenti valori: #RIF! per i fornitori che dovrò poi filtrare e #N/D per i fornitori che invece devono rimanere nel mio file.... ricapitolando:
- ho salvato il file generato dal sistema col nome ANTICIPI AL 04-07-11.xls dove la colonna che contiene i codici fornitore dalla cella A2 in poi, ho creato un altro file con i fornitori da eliminare chiamato FORNITORI OUT.xls dove nella colonna A ci sono i codici dei fornitori e nella B ho inserito l'asterisco.
Nella prima colonna libera (M) del file in questione ho inserito il cerca verticale in questo modo: =CERCA.VERT(A2;'[FORNITORI OUT.xls]Foglio1'!$A:$A;2;0)... dove ho sbagliato? :undecided:
Grazie...
Ciao
simon@
Newbie
 
Post: 5
Iscritto il: 01/07/11 13:17

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 04/07/11 15:59

Perché hai creato un altro file?
solo un foglio all'interno del file,
se ti dà fastidio averlo visibile lo potrai nascondere
Il problema del cerca verticale è che se non trova il Valore fornisce errore, ma se lo condizioniamo..
Supponendo che tu abbia l'elenco dei 20 fornitori da A2 a A21 del foglio2
(non dare al foglio un nome con spazi e puoi chimarlo Foglio2 perché poi lo nasconderai)
Quindi In I2 (per esempio) del foglio Anticipi... inserirai questa formula
Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(A2;Foglio2!$A$2:$B$21;2;0))=VERO;"";CERCA.VERT(A2;Foglio2!$A$2:$B$21;2;0))

che trascini fino dove occorre
filtri la colonna I senza gli "*"
Nascondi il Foglio2

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi simon@ » 07/07/11 07:47

Rieccomi!! :)
Mi serviva un altro file con l'elenco dei fornitori da filtrare perchè il file da elaborare viene generato ogni volta dal gestionale.
Sono riuscita ad ottenere il risultato che cercavo facendo due macro distinte, se provo ad unirle non funziona... :-?
... ma va benissimo così'!! :)
Grazie ancora per l'aiuto e buona giornata :!:
Ciao ciao
simon@
Newbie
 
Post: 5
Iscritto il: 01/07/11 13:17

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 07/07/11 08:03

Se non riesci ad "unirle" integrando una nell'altra ma funzionano separatamente puoi accodare la seconda alla prima con una call
es.:

Codice: Seleziona tutto
Sub Macro1()
...
...
...


call Macro2
end sub


la macro2 la lasci come è

Codice: Seleziona tutto
Sub Macro2()
...
...
...
End sub


In questa maniera dopo il termine della macro1 (cioè poco prima dell'End Sub)
sarà attivata la macro2
e quando finisce avrai processato entrambe le macro soltanto avviando la prima

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi simon@ » 07/07/11 09:25

Ma quante ne sai :?: :?: :?:

Grazie anche per questa dritta ;)

Ciao
simon@
Newbie
 
Post: 5
Iscritto il: 01/07/11 13:17

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 07/07/11 09:33

Con la frequentazione di questo forum si apprendono molte cose ;)
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 07/02/13 13:19

Ciao, mi ricollego a questo post del forum poichè avrei lo stesso lavoro da fare: in pratica dovrei eliminare delle righe le quali in corrispondenza di una determinata colonna hanno una parola all'interno delle corrispondenti celle. Facendo riferimento al codice che ha scritto Flash30005, ho scritto questo:
Sub EliminaRighe()

Ur = Range("A" & Rows.Count).End(xlUp).Row '<<<< questo codice conta le righe nella colonna A

For RR = Ur To 1 Step -1 '<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
If Range("L" & RR).Value = "ACQUISITO" Then '<<<<< condizione che il valore della riga RR colonna B sia = "M03"
Rows(RR & ":" & RR).Delete Shift:=xlUp '<<< in caso positivo cancella la riga altrimenti prosegue la scansione
End If
Next RR

Ur = Range("A" & Rows.Count).End(xlUp).Row '<<<< questo codice conta le righe nella colonna A

For RR = Ur To 1 Step -1 '<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
If Range("L" & RR).Value = "RESPINTO" Then '<<<<< condizione che il valore della riga RR colonna B sia = "M03"
Rows(RR & ":" & RR).Delete Shift:=xlUp '<<< in caso positivo cancella la riga altrimenti prosegue la scansione
End If
Next RR

Ur = Range("A" & Rows.Count).End(xlUp).Row '<<<< questo codice conta le righe nella colonna A

For RR = Ur To 1 Step -1 '<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
If Range("L" & RR).Value = "IGNORATO" Then '<<<<< condizione che il valore della riga RR colonna B sia = "M03"
Rows(RR & ":" & RR).Delete Shift:=xlUp '<<< in caso positivo cancella la riga altrimenti prosegue la scansione
End If
Next RR

End SUB

Praticamente io ho inserito diversi cicli poichè ho diverse parole per le quali devo eliminare delle righe. Il mio problema è che la macro non parte proprio, rpaticamente dopo che la salvo, apro il file sul quale lavorare, faccio esegui macro elimina righe, ma non accade nulla. Potreste darmi una mano cortesemente? grazie.
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 07/02/13 13:22

Dimenticavo, io uso excel 2007
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 07/02/13 14:32

Per non funzionare 3 sono le cause possibili
La prima cosa necessaria con questa macro è che deve essere attivo il foglio che deve essere processato
la seconda cosa è che vengono rilevate il numero righe nella colonna A, se in A non hai dati il ciclo for next non viene attivato ovvero processa solo la prima riga
La terza cosa è che in L forse hai quelle stringhe in minuscolo pertanto non vengono rilevate.
per i punti 2 e 3 ho provveduto modificando la macro
1) conto le righe in colonna L
2) e ho fatto uso di Ucase che rende la stringa interamente maiuscola come quella che hai inserito nella macro

L'ultima modifica (uso degli OR) evitano di ripetere tre volte il ciclo visto che le stringhe da cercare sono tutte nella stessa colonna "L".

Codice: Seleziona tutto
Sub EliminaRigheSe()
Ur = Range("L" & Rows.Count).End(xlUp).Row '<<<< questo codice conta le righe nella colonna L

For RR = Ur To 1 Step -1 '<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
If UCase(Range("L" & RR).Value) = "ACQUISITO" Or UCase(Range("L" & RR).Value) = "RESPINTO" Or UCase(Range("L" & RR).Value) = "IGNORATO" Then '<<<<< condizione che il valore della riga RR colonna L sia una delle stringhe scritte
Rows(RR & ":" & RR).Delete Shift:=xlUp '<<< in caso positivo cancella la riga altrimenti prosegue la scansione
End If
Next RR

End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 11/02/13 12:21

ciao, scusami se non ho risposto subito, ma non ho potuto. Comuqnue volevo ringraziarti perchè sono riuscito a modificarlo e ho opttenuto quello ceh volevo. Volevo inoltre chiederti, se volessi creare una macro dove per una cella che è vuota vado ad inserire in un altra cella sempre nella stessa riga una parola, quale sarebbe il comando? grazie.
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 11/02/13 12:38

lupinlupin84 ha scritto:se volessi creare una macro dove per una cella che è vuota vado ad inserire in un altra cella sempre nella stessa riga una parola, quale sarebbe il comando?

Perdonami ma non ho capito.
In un foglio ci sono migliaia di celle vuote, cosa vorresti fare di preciso?
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 11/02/13 13:04

effettivamente mi sono espresso molto male...allora, io in una colonna ho alcune celle vuote.Io quello che voglio fare è scrivere all'interno delle celle di una colonna ben precisa una parola in corrispondenza della riga con la cella vuota . Inoltre la stessa cosa vorrei farla scrivendo una parola in una cella di una colonna per la quale nella stessa riga in una cella di una determianta colonna ci sia una parola stabilita. riassumendo, a cella vuota della colonna AM deve essere inserita nella tessa riga nella colonna AT "parola". Mentre nelle celle della colonna di AM dove c'è scritta cane , nella stessa riga nella colonna AT deve essere inserita la parola "animale"
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 11/02/13 14:29

Inserisci in un modulo questa macro e avviala con foglio dati attivo

Codice: Seleziona tutto
Sub Compila()
UR = Range("AM" & Rows.Count).End(xlUp).Row
For RR = 1 To UR
If Range("AM" & RR).Value = "" Then Range("AT" & RR).Value = "parola"
If UCase(Range("AM" & RR).Value) = "CANE" Then Range("AT" & RR).Value = "animale"
Next RR
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 11/02/13 17:02

ciao, grazie per l'aiuto, ha funzionato alla grande....volevo chiederti, siccome io volevo inserire in alcune celle questa stringa di c aratteri ="SUSCP:SNB=0"&A3&";" come mai mi da errore, vedo che non posso scrivere la parola suscp .
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi Flash30005 » 11/02/13 20:49

Non è "suspc" che dà errore ma quell' "A3" che forse intendevi il valore della cella A3
se così devi mettere questo codice
Codice: Seleziona tutto
= "SUSCP:SNB=0" & [A3] & ";"


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel 2003 - eliminare riga secondo contenuto

Postdi lupinlupin84 » 12/02/13 10:53

Ciao, praticamente la stringa che vorrei isnerire è questa ="SUSCP:SNB=0"&A3&";" la quale è un comando che io inserisco in una cella in modo tale che diventi una stringa di comando relativa a dei numeri di telefono presenti nella colonna A.
lupinlupin84
Utente Junior
 
Post: 32
Iscritto il: 02/02/11 14:58

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel 2003 - eliminare riga secondo contenuto":


Chi c’è in linea

Visitano il forum: Nessuno e 54 ospiti