Condividi:        

[excel] macro elimina righe in base al valore 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

Re: [excel] macro elimina righe in base al valore cella

Postdi neverlandce » 20/10/09 16:06

grazie Flash, al solito sei cosi gentile che vai sempre oltre quello che ti si chiede.
neverlandce
Utente Junior
 
Post: 48
Iscritto il: 27/08/09 18:09

Sponsor
 

Re: [excel] macro elimina righe in base al valore cella

Postdi accio1965 » 17/01/11 10:50

ciao a tutti
rispolvero questo mio vecchio post perchè ho modificato non riesco a far funzionare la seguente macro
Codice: Seleziona tutto
Sub cancella()
righe = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Range("A1").Row
For I = righe To 1 Step -1
Cells(I, 1).Select
If Selection.Value = "ALL" Then Selection.EntireRow.Delete
Next I
End Sub

l'obbiettivo è quello di cancella re tutte le righe che hanno in colonna A il valore "ALL" ma ottengo l'errore tipo non corrispondente
perche?
cosa devo aggiungere?
AMD Athlon 64x2 dual core P 4600+ 2,40 GHz
windows vista hd sp2
office 2007
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Re: [excel] macro elimina righe in base al valore cella

Postdi ricky53 » 17/01/11 17:21

Ciao,
strano ... Uhm, Uhm ...

Prova con
[code]Sub cancella()
Righe = Range("A" & Rows.Count).End(xlUp).Row
For I = Righe To 1 Step -1
If UCase(Cells(I, 1)) = "ALL" Then Cells(I, 1).EntireRow.Delete
Next I
End Sub
[code]
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [excel] macro elimina righe in base al valore cella

Postdi Anthony47 » 18/01/11 02:03

Vuoi forse dire che hai quell’ errore “su celle che in col A contengono uno stato di errore??

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

Re: [excel] macro elimina righe in base al valore cella

Postdi accio1965 » 15/02/11 12:37

cia Antony
l'errore lo riporta visula basic
errore di runtime 13:
Tipo non corrispondente
AMD Athlon 64x2 dual core P 4600+ 2,40 GHz
windows vista hd sp2
office 2007
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Re: [excel] macro elimina righe in base al valore cella

Postdi Anthony47 » 15/02/11 15:04

Questo l' avevi detto gia'; vorrei pero' la risposta alla domanda che ti feci nel post del 18-1.

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

Re: [excel] macro elimina righe in base al valore cella

Postdi accio1965 » 03/10/11 07:45

Messaggio di Anthony47 » 18/01/11 03:03
Vuoi forse dire che hai quell’ errore “su celle che in col A contengono uno stato di errore??

Ciao

anche se con molto ritardo ritorno sull'argomento
allora la colonna A
contiene
numeri e testo compre o il testo
visual basic mi segnala l'errore in questo punto della macro "If UCase(Cells(I, 1)) = "ALL" Then"
AMD Athlon 64x2 dual core P 4600+ 2,40 GHz
windows vista hd sp2
office 2007
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Re: [excel] macro elimina righe in base al valore cella

Postdi Anthony47 » 04/10/11 22:21

Torna alla macro che usava Cells(I, 1).Select e dimmi quale cella e' selezionata la momento dell' errore, cosa visualizzi nella cella, che cosa c' e' scritto nella cella (copia e incolla nel messaggio quello che leggi nella barra della formula).

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

Re: [excel] macro elimina righe in base al valore cella

Postdi accio1965 » 06/10/11 08:54

la cella in questione è l'utlima che contiene un valore della colonna A
il valore che contiene è #N/D come testo dopo un copia/incolla speciale di solo valori
anche nella barra della formula è presente il solo valore #N/D
presumo che sia questo che imballi la macro???

per risolvere e bypassare il valore #N/D
avevo utilizzato questa macro
Codice: Seleziona tutto
Range("A1:A340").Select
    Selection.Replace What:="#N/D", Replacement:="ALL", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("A1").Select

che pero non funziona cioè non sostituisce al valore #N/D il valore ALL x far funzionare la tua macro
se invece effettuo la sostituzione dal menu modifica sostituisci tutto la sostituzione avviene regolarmente
stessa cosa se provo ad effettuare la sostituzione del testo #VALORE con 0 (zero) con la macro non funziona
AMD Athlon 64x2 dual core P 4600+ 2,40 GHz
windows vista hd sp2
office 2007
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Re: [excel] macro elimina righe in base al valore cella

Postdi Anthony47 » 06/10/11 14:04

Scusa se te lo faccio notare, ma hai impiegato 9 mesi per rispondere "Si, e' così" alla domanda che ti feci il 18-1, riconfermata il 15-2.

Prova a sostituire, nella macro del 17-1, la riga If Selection.Value = "ALL" etc etc con
Codice: Seleziona tutto
If IsError(Selection) Then
    Selection.EntireRow.Delete
    Else
    If Selection.Value = "ALL" Then Selection.EntireRow.Delete
End If

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

Re: [excel] macro elimina righe in base al valore cella

Postdi accio1965 » 07/10/11 12:27

risolto :)
AMD Athlon 64x2 dual core P 4600+ 2,40 GHz
windows vista hd sp2
office 2007
accio1965
Utente Junior
 
Post: 52
Iscritto il: 21/08/07 08:39

Re: [excel] macro elimina righe in base al valore cella

Postdi Flash30005 » 07/10/11 12:31

Anthony47 ha scritto:Scusa se te lo faccio notare, ma hai impiegato 9 mesi per ...


Si, ma alla fine la "creatura" è nata! :D
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] macro elimina righe in base al valore cella

Postdi giorgio48 » 12/10/13 14:30

Ciao a tutti, ho letto nel forum qualche discussione simile ma non sono riuscito ad adattare i suggerimenti alle mie esigenze.
In pratica ho la necessità di eliminare una riga che contenga in una colonna specifica un numero, e questo numero deve essere preso in una determinata cella del foglio. Grazie a tutti per l'aiuto che potrete darmi Giorgio48.
giorgio48
Newbie
 
Post: 3
Iscritto il: 12/10/13 14:18

Re: [excel] macro elimina righe in base al valore cella

Postdi Flash30005 » 13/10/13 01:53

Ciao Giorgio48 e benvenuto nel Forum
per adattare una macro che elimini una riga in funzione di un valore (ne abbiamo molte a riguardo) si deve modificare il riferimento della cella che determina il consenso all'eliminazione pertanto se la macro prevedeva la colonna E mentre la tua esigenza è la colonna L cambi la lettera nel caso la macro riporti il range("E" & VariabileRiga).value con range("L" & VariabileRiga).value
oppure
il numero di colonna nel caso venga rappresentata con cells(variabileriga, 5).value con cells(variabileriga, 12).value
senza altre informazioni dovrai risolvere da solo

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] macro elimina righe in base al valore cella

Postdi giorgio48 » 13/10/13 15:21

grazie Flash per la prontezza della risposta, questa è la macro che ho provato ad utilizzare:
Sub EliminaRighe()
' Seleziona il foglio che ti interessa (Foglio1 in questo caso)
Worksheets("CORREZIONE_RICEVUTA").Select
'<<<< questo codice conta le righe nella colonna D
Ur = Range("D" & Rows.Count).End(xlUp).Row
'<<<< questo ciclo inizia dall'ultima riga e scansiona tutte le righe fino alla prima
For RR = Ur To 1 Step -1

'<<<<< condizione che il valore della riga RR colonna D sia = valore presente in una cella qualsiasi per esempio "L1"
If Range("D" & RR).Value = 44 Then

'<<< in caso positivo cancella la riga altrimenti prosegue la scansione
Rows(RR & ":" & RR).Delete Shift:=xlUp
End If
Next RR
End Sub
non so come indicare che il valore, in questo caso "44" , deve essere preso da una cella. Tieni presente che i valori sono univoci ed ognuno è riferito ad una ricevuta. Grazie moltissimo spero di essere riuscito a farmi capire Giorgio48
giorgio48
Newbie
 
Post: 3
Iscritto il: 12/10/13 14:18

Re: [excel] macro elimina righe in base al valore cella

Postdi Flash30005 » 13/10/13 20:07

Non ho ben capito se hai adattato la macro al tuo nome foglio e alla tua colonna (rilevamento numero righe sia D nel tuo foglio)
se così e ti manca solo la modifica della variabile 44 con la cella L1 devi semplicemente modificare così
Codice: Seleziona tutto
If Range("D" & RR).Value = [L1] Then
...


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] macro elimina righe in base al valore cella

Postdi giorgio48 » 14/10/13 06:22

Grazie Flash,
risolto! era proprio quello che volevo sapere!!!
cari saluti Giorgio48
giorgio48
Newbie
 
Post: 3
Iscritto il: 12/10/13 14:18

Re: [excel] macro elimina righe in base al valore cella

Postdi Omocaig » 09/06/15 13:29

Ciao a tutti, riapro il post chiuso 6 anni fa.
Uso Excel 2003 su Xp.
Volevo chiedere come fare a riferirmi ad una colonna diversa dalla A ed eseguire la stessa operazione cancellando solo le celle vuote o contenenti un numero.

Le celle vengono copiate da un altro foglio nelle cui celle ( nella colonna su cui voglio operare per selezionare le righe da cancellare ) non è presente il carattere spazio.

Ho provato le seguenti soluzioni:

Codice: Seleziona tutto
Sub Prova()
righe = Range("Z10").CurrentRegion.Rows.Count  '< utilizzata alternativamente alla riga sotto
righe = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Range("Z10").Row
For I = righe To 1 Step -1
Cells(I, 1).Select
If Selection.Value = "" Or IsNumeric(Selection.Value) Then Selection.EntireRow.Delete
Next I
End Sub


In entrambi i casi l'operazione viene eseguita correttamente, però prendendo come riferimento la colonna A, e la macro cancella le righe senza contenuto o con contenuto un valore numerico nella colonna A.

Alla fine dell'esecuzione della macro, compare la scritta:

"errore di run-time '13' Tipo non corrispondente" ma a parte la colonna sbagliata la macro funziona.

Speravo di farcela da solo dato che sto imparando tanto grazie a questo forum ma non mi capacito di come sia possibile, perchè io di considerare la colonna delle Z gliel'ho detto al computer !

Grazie mille !
Xp + Office 2016 Ita
Omocaig
Utente Junior
 
Post: 93
Iscritto il: 11/05/15 15:08

Re: [excel] macro elimina righe in base al valore cella

Postdi Anthony47 » 09/06/15 14:30

Per rimanere su quanto abbozzato, non Cells(I, 1).Select ma Cells(I, 26).Select

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

Re: [excel] macro elimina righe in base al valore cella

Postdi Omocaig » 10/06/15 15:19

Funge, giusto, grazie ! Però sto migliorando !
Xp + Office 2016 Ita
Omocaig
Utente Junior
 
Post: 93
Iscritto il: 11/05/15 15:08

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[excel] macro elimina righe in base al valore cella":


Chi c’è in linea

Visitano il forum: Marius44 e 57 ospiti