| | Post: 34 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
17/07/2017 16:53 | |
Buongiorno.
Con il registratore di Macro ho registrato le seguenti operazioni. L'obiettivo è selezionare i valori a zero nella colonna H ed eliminare tutte le righe corrispondenti (cioè mi servono solo le righe che riportano nella colonna H un valore differente da zero).
Provando però ad applicare la macro, qualcosa non funziona (già vedo quegli H6 e $O$2385 che non mi piacciono).
Potete darmi qualche dritta?
Grazie
Nigel
Sub Elimina_righe_a_zero()
Cells.Select
Range("B1").Activate
Selection.AutoFilter
ActiveSheet.Range("$A$1:$O$10000").AutoFilter Field:=8, Criteria1:="0,00"
Range("H6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
ActiveSheet.Range("$A$1:$O$2385").AutoFilter Field:=8
End Sub |
|
| | Post: 3.919 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
17/07/2017 17:58 | |
in questo caso il registratore non ti aiuta, prova questa
Sub EliminaRigaZero()
ActiveSheet.UsedRange.Range("H:H").Replace What:=0, Replacement:=""
ActiveSheet.UsedRange.Range("H:H").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub [Modificato da patel45 17/07/2017 17:58]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 34 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
18/07/2017 10:25 | |
patel45, 17/07/2017 17.58:
in questo caso il registratore non ti aiuta, prova questa
Sub EliminaRigaZero()
ActiveSheet.UsedRange.Range("H:H").Replace What:=0, Replacement:=""
ActiveSheet.UsedRange.Range("H:H").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Buongiorno.
Intanto ringrazio per la risposta e mi scuso per non avere sottolineato che tutte le celle del foglio sul quale deve essere effettuata l'operazione sono valorizzate attraverso formule: dunque, se faccio operare la macro direttamente su questo foglio, non funziona
Errore di run-time '1004':
Non è stata trovata alcuna cella.
Se invece copio tutti i dati e li incollo speciale "valori e formati numeri", allora la macro funziona perfettamente.
Partendo comunque dal presupposto che già ho risparmiato tempo ed effettuato l'operazione in maggiore sicurezza evitando troppe azioni manuali, la mia domanda, a questo punto, nasce spontanea: come deve essere modificata la macro affinchè funzioni correttamente nel foglio di origine, quello con le formule per intenderci?
Grazie.
Nigel |
| | Post: 3.920 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
18/07/2017 10:36 | |
allega un file di esempio
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 35 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
18/07/2017 10:38 | |
Nigel78, 18/07/2017 10.25:
Buongiorno.
Intanto ringrazio per la risposta e mi scuso per non avere sottolineato che tutte le celle del foglio sul quale deve essere effettuata l'operazione sono valorizzate attraverso formule: dunque, se faccio operare la macro direttamente su questo foglio, non funziona
Errore di run-time '1004':
Non è stata trovata alcuna cella.
Se invece copio tutti i dati e li incollo speciale "valori e formati numeri", allora la macro funziona perfettamente.
Partendo comunque dal presupposto che già ho risparmiato tempo ed effettuato l'operazione in maggiore sicurezza evitando troppe azioni manuali, la mia domanda, a questo punto, nasce spontanea: come deve essere modificata la macro affinchè funzioni correttamente nel foglio di origine, quello con le formule per intenderci?
Grazie.
Nigel
In realtà un errore c'è:
i valori nella colonna H sono numeri, e nel trasferimento viene perso lo zero, così 8310,21 diventa 831,21 oppure 23580,45 diventa 2358,45 e 102,91 diventa 12,91. |
| | Post: 36 | Registrato il: 08/02/2016
| Città: REGGIO CALABRIA | Età: 46 | Utente Junior | 97-2003 | | OFFLINE | |
|
18/07/2017 11:05 | |
Provo ad inserire un file come esempio riportante tutti i casi.
Facendo girare la macro sul foglio "Destinazione", devono rimanere tutte le righe che nella colonna H hanno valore diverso da zero, dunque nell'esempio sono due, quelle che hanno valore 1514,27 e 108,12. Quella con zero va eliminata.
[Modificato da Nigel78 18/07/2017 11:24] |
| | Post: 1.480 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
18/07/2017 13:12 | |
ciao
puoi provare:
Sub EliminaRigaZero()
ur = Range("A" & Rows.Count).End(xlUp).Row
For r = ur To 2 Step -1
If Cells(r, 8) = 0 Then Cells(r, 1).EntireRow.Delete
Next
End Sub
da eseguire sul foglio "Destinazione".
Saluti
Domenico
Win 10 - Excel 2016 |
|
|