Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[EXCEL] MACRO Eliminare righe in base a contenuto 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

[EXCEL] MACRO Eliminare righe in base a contenuto cella

Postdi bluebetter » 28/10/16 04:39

Buongiorno a tutti, e grazie in anticipo per l'aiuto ed il vostro tempo.
Scusate la mia ignoranza,se potete.

Sto utilizzando la seguente Macro in un file Excel (ovviamente trovata qui, non farina del mio sacco).
Vorrei crearne una seconda per Eliminare le righe, non solo nasconderle, in base ad un determinato valore (0, in questo caso).
Vorrei mantenere il messaggio che riporta il numero di righe eliminate.

Mi potete aiutare?
Grazie ancora
Luca

Codice: Seleziona tutto
'
' NascondiRighe Macro
'
Option Explicit
Option Compare Text

Sub hide_all_zero()
    Dim UR As Long, I As Long, Nascoste As Long, Messaggio As String, Testo_per_Nascondere As String
    UR = Range("A" & Rows.Count).End(xlUp).Row
    Nascoste = 0
   
    Testo_per_Nascondere = "0" ' <<----------- QUI devi inserire il contenuto per il quale vuoi nascondere le righe
   
    Cells.EntireRow.Hidden = False
    Application.ScreenUpdating = False
    For I = 2 To UR
        If Sheets("Sheet1").Cells(I, 6).Value = Testo_per_Nascondere Then
            Sheets("Sheet1").Cells(I, 6).EntireRow.Hidden = True
            Nascoste = Nascoste + 1
        End If
    Next I
    Application.ScreenUpdating = True
   
    If Nascoste > 0 Then
        Messaggio = "Sono state nascoste:  " & Nascoste & "  righe"
    Else
        Messaggio = "Non sono state nascoste righe"
    End If
    MsgBox Messaggio
End Sub
bluebetter
Newbie
 
Post: 2
Iscritto il: 28/10/16 04:25

Sponsor
 

Re: [EXCEL] MACRO Eliminare righe in base a contenuto cella

Postdi recalcatiiti » 28/10/16 09:17

Ciao Luca benvenuto, questa è una possibile soluzione. Occhio che cancella senza preavviso, quindi testala prima di applicarla.

Codice: Seleziona tutto
Option Explicit
Option Compare Text

Sub delete_all_zero()
    Dim UR As Long, I As Long, J As Long, Messaggio As String, Testo_per_Eliminare As String
    UR = Range("A" & Rows.Count).End(xlUp).Row
    J = 0
   
    Testo_per_Eliminare = "0" ' <<----------- QUI devi inserire il contenuto per il quale vuoi eliminare le righe
   
    Application.ScreenUpdating = False
   
    For I = 2 To UR
        If Sheets("Sheet1").Cells(I, 6).Value = Testo_per_Eliminare Then
            Sheets("Sheet1").Cells(I, 6).EntireRow.Delete
            I = I - 1
            J = J + 1
        End If
   
    Next I
 
    Application.ScreenUpdating = True
   
    If J > 0 Then
        Messaggio = "Sono state eliminate:  " & J & "  righe"
    Else
        Messaggio = "Non sono state eliminate righe"
    End If
    MsgBox Messaggio
End Sub


Fai sapere se va bene.

Ciao.
Excel 2010
recalcatiiti
Utente Junior
 
Post: 82
Iscritto il: 12/10/15 15:03

Re: [EXCEL] MACRO Eliminare righe in base a contenuto cella

Postdi bluebetter » 28/10/16 10:29

Ciao.
Va... BENISSIMO!!
Grazie mille.
Luca
bluebetter
Newbie
 
Post: 2
Iscritto il: 28/10/16 04:25

Re: [EXCEL] MACRO Eliminare righe in base a contenuto cella

Postdi Anthony47 » 29/10/16 23:08

Bravo Stefano.
Unica osservazione: invece del normale for I=2 to UR /Next I, che poi ti costringe a inserire I-1 in caso di delete, in questi casi conviene fare For I=UR to 2 step -1 /Next I (senza piu' I=I-1)

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

Re: [EXCEL] MACRO Eliminare righe in base a contenuto cella

Postdi recalcatiiti » 02/11/16 14:31

Grazie Anthony, farò tesoro del tuo consiglio.
Excel 2010
recalcatiiti
Utente Junior
 
Post: 82
Iscritto il: 12/10/15 15:03


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] MACRO Eliminare righe in base a contenuto cella":


Chi c’è in linea

Visitano il forum: Nessuno e 60 ospiti