Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Eliminare righe Excel 2007

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 righe Excel 2007

Postdi danny72 » 30/05/12 13:34

Buongiorno a tutti, ho cercato sul forum ma non sono riuscito nel compito.
Devo eliminare delle righe dove all'interno di una cella c'è un nome particolare e poi far scorrere le righe rimanenti.
Ho provato alcune macro ma non mi cancellano nessuna riga!
Il foglio di lavoro ha circa 700 righe e purtroppo non posso girarlo all'esterno.
Qualcuno può aiutarmi?

Grazie

Daniele
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Sponsor
 

Re: Eliminare righe Excel 2007

Postdi ricky53 » 30/05/12 13:41

Ciao Daniele,
prima di tutto benvenuto nel nostro forum.

Puoi inviare il codice che hai utilizzato e che non ha funzionato.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Eliminare righe Excel 2007

Postdi danny72 » 30/05/12 14:44

Questo mi sembrava interessante al mio scopo.

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


Io dovrei cancellare completamente delle righe che nella cella della seconda colonna hanno un testo (es. pippo)
Sono 50 righe (ovviamente sparse) su circa 700.
Nella macro che ho utilizzato, ho sostituito "foglio1" con il nome del mio foglio e "M03" con il mio "pippo"...

EDIT Flash30005 - Inserito codice nel Tag Code che, ricordo a tutti, deve essere usato per maggior leggibilità dell'intero post
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Re: Eliminare righe Excel 2007

Postdi ricky53 » 30/05/12 16:21

Ciao,
e cosa hai ottenuto?
Errori?
Non ha cancellato nulla?
Altro?


Prima di tutto devi sostituire in
Codice: Seleziona tutto
UR =Range("A" & Rows.Count).End(xlUp).Row

la "A" con "B"
altrimenti conti le righe con dati della colonna "A" però poi, con le altre istruzioni, vai ad agire sulla colonna "B" e se la "A" è vuota o ha meno righe della "B"?

Prova e fatti sentire.

P.S.: quel codice non mi è nuovo ... somiglia molto a qualcodsa che potrei aver prodotto io ... specialmente nel modo di utilizzare i nomi delle variabili ...!!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Eliminare righe Excel 2007

Postdi danny72 » 31/05/12 09:55

Non cancella nulla anche modificando lo script.
Tanto per darvi un'idea, queste sono alcune righe/colonne del file.

30/05/12 WMF - POLE ITALY
30/05/12 IIMIS
30/05/12 IIMIS
30/05/12 WMF - POLE ITALY
29/05/12 IIMIS
29/05/12 STAB. BRESCIA
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Re: Eliminare righe Excel 2007

Postdi Zer0Kelvin » 31/05/12 10:32

Ciao.
La macro che hai postato funziona proprio così come è scritta!
Probabilmente il problema non è nel codice, ma nel contenuto della cella che vai a confrontare; non è che ci sono spazi vuoti o differenze maiuscolo/minuscolo?
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 305
Iscritto il: 08/04/12 11:23

Re: Eliminare righe Excel 2007

Postdi danny72 » 31/05/12 11:04

Yeah! Grazie all'ultimo consiglio ho scoperto che la scritta aveva degli spazi all'inizio e alla fine!
C'è un modo per far selezionare solo i caratteri e non gli spazi?
Inserendo gli spazi, la macro funziona.

Dato che sono ignorante in materia, mi spiegate come posso rendere disponibile la macro per qualsiasi foglio di lavoro nuovo?

Grazie mille.
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Re: Eliminare righe Excel 2007

Postdi Zer0Kelvin » 31/05/12 11:23

La funzione Trim consente di eliminare gli spazi iniziali e finali da una stringa; puoi modificare così l'istruzione if
Codice: Seleziona tutto
If Trim(Range("B" & rr).Value) = "M03" Then
se vuoi che non ci sia la distinzione fra maiuscolo e minuscolo puoi inserire l'istruzione
Codice: Seleziona tutto
Option Compare Text
all'inizio del modulo che contiene la macro.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 305
Iscritto il: 08/04/12 11:23

Re: Eliminare righe Excel 2007

Postdi danny72 » 31/05/12 11:47

spettacolari! Grazie mille.
Sono riuscito anche a crearlo come componente aggiuntivo di excel in modo da renderla disponibile in futuro.
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Re: Eliminare righe Excel 2007

Postdi danny72 » 06/06/12 15:18

Ciao a tutti, ho ancora bisogno di un aiutino.
La macro funziona ma avrei bisogno che sia disponibile di default.
Purtroppo anche se attivo il componente aggiuntivo creato, non mi ritrovo la macro e ogni volta devo ricrearla.

Vrei anche un altro problemino più grosso che il nostro programmatore non riesce(o forse non vuole) a risolvere, ma al massimo ci sentiamo se non dovessi risolverlo con la macro.

Grazie a tutti
danny72
Newbie
 
Post: 6
Iscritto il: 30/05/12 13:22

Re: Eliminare righe Excel 2007

Postdi Anthony47 » 06/06/12 21:10

Metti la macro all' interno del file Personal.xls, che viene aperto automaticamente quando apri Excel.
Se non hai gia' un "Personal.xls", avvia la registrazione di una macro; nel wizard di Registra macro c' e' la voce "Memorizza macro in...": scegli Cartella macro personale; scrivi Pippo in una cella e termina la registrazione.
Se ora vai nell' editor delle macro, nel frame VBAProject (a sx; se non lo vedi premi Contr-r) troverai anche un file Personal.xls, con almeno un Modulo contenente la tua macro inutile (che puoi cancellare); metti la macro in questo modulo, la vedrai da tutti i file in lavorazione. Quando chiuderai Excel ti chiedera' se salvare il file Personal, ovviamente risponderai di si (magari chiudi subito e riapri, cosi' il processo e' completo).

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare righe Excel 2007

Postdi ricky53 » 07/06/12 19:12

Caio,
leggi quanto ti ha scritto Anthony e poi ...
io aggiungo che se vorrai avere la stessa macro su altri PC dovrai copiare la macro anche negli altri file "Personal.xls" dei PC sui cui andrai ad operare per non ricoprire le macro che questo file contiene.
Se sul PC su cui stai operando il file non c'è potrai copiarlo senza problemi di ricoprire macro.

Buon proseguimento.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Eliminare righe Excel 2007

Postdi SheldonCooper » 24/06/12 12:07

Buongiorno a tutti.

Innanzitutto mi presento. Mi chiamo Jean, ho 27 anni e sono abbastanza newbie su VBA.

Chiedo il vostro prezioso supporto in merito a questo codice:

Codice: Seleziona tutto
Sheets(Array("1", "2", "3", "4")) _
.Select
Range("A1:B13000").Select
Range("A1:B13000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Sheets("Data").Activate
Range("A1").Select


L'obiettivo, come potrete vedere, è quello di eliminare tutte le righe vuote all'interno della selezione impostata nell'array.

Il Workbook su cui la macro opera è un file generato da un'altra macro che, invece, lavora su un file "Master".
I 4 fogli vengono creati e rinominati e nelle prime due colonne vengono incollati ed ordinati (xlAscending) i valori di due colonne di altrettanti fogli all'interno del "Master". Nelle celle del "Master" sono presenti queste due formule:
Colonna1 --> =SE($E2="No";C2;"")
Colonna2 --> =SE($E2="No";D2;"")

Purtroppo la macro non cancella le righe.

Consigli?

Vi ringrazio sin da ora per la collaborazione,
Jean
SheldonCooper
Newbie
 
Post: 5
Iscritto il: 24/06/12 08:36

Re: Eliminare righe Excel 2007

Postdi Flash30005 » 24/06/12 14:29

Prova così
Codice: Seleziona tutto
Sub CancellaRighe()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Sheets(Array("1", "2", "3", "4")) _
.Select
For RR = 13000 To 1 Step -1
If Cells(RR, 1).Value = "" Or Cells(RR, 2).Value = "" Then Rows(RR & ":" & RR).EntireRow.Delete
Next RR
Sheets("Data").Activate
Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
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 righe Excel 2007

Postdi SheldonCooper » 24/06/12 14:37

Flash30005 ha scritto:Prova così
Codice: Seleziona tutto
Sub CancellaRighe()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Sheets(Array("1", "2", "3", "4")) _
.Select
For RR = 13000 To 1 Step -1
If Cells(RR, 1).Value = "" Or Cells(RR, 2).Value = "" Then Rows(RR & ":" & RR).EntireRow.Delete
Next RR
Sheets("Data").Activate
Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


Ciao


Grazie Flash30005! :)
Funziona sul foglio 1. Sugli altri no.
Ora provo a modificare il tuo codice e a prendere il singolo foglio e vediamo che succede.
Ti faccio sapere tra poco.
Grazie ancora ;)
SheldonCooper
Newbie
 
Post: 5
Iscritto il: 24/06/12 08:36

Re: Eliminare righe Excel 2007

Postdi SheldonCooper » 24/06/12 14:43

Niente :(

EDIT: Scherzavo, funziona alla grandissima!

Se posso, why il mio codice non girava a dovere? :oops:
SheldonCooper
Newbie
 
Post: 5
Iscritto il: 24/06/12 08:36

Re: Eliminare righe Excel 2007

Postdi Flash30005 » 24/06/12 15:38

Io ho numerato i fogli 1, 2, 3, 4 e la macro ha lavorato su tutti i fogli

Il codice da te postato non ha funzionato perché le celle che contengono formule non sono "vuote" anche se non forniscono alcun valore

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 righe Excel 2007

Postdi SheldonCooper » 24/06/12 15:53

Flash30005 ha scritto:Io ho numerato i fogli 1, 2, 3, 4 e la macro ha lavorato su tutti i fogli

Il codice da te postato non ha funzionato perché le celle che contengono formule non sono "vuote" anche se non forniscono alcun valore

Ciao


Grazie di tutto Flash30005 ;)
A presto :)
SheldonCooper
Newbie
 
Post: 5
Iscritto il: 24/06/12 08:36


Torna a Applicazioni Office Windows


Topic correlati a "Eliminare righe Excel 2007":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti