Excel Forum Per condividere esperienze su Microsoft Excel

Eliminare riga se tutto il range è vuoto

  • Messaggi
  • OFFLINE
    BG66
    Post: 285
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 20/01/2020 06:30
    Ciao a tutti.
    in rete è presente spesso questo quesito ma focalizzato su una cella specifica.
      
    Sub cancella_vuote() 
    ur = Range(“a” & Rows.Count).End(xlUp).Row 
    For v = ur To 1 Step -1 
    If Range(“a” & v) = “” Then 
    Range(“a” & v).Select 
    Selection.EntireRow.Delete 
    End If 
    Next v 
    End Sub


    Io vorrei invece imparare come eliminare l'intera riga se una serie di celle della stessa sono vuote.
    In pratica nel file allegato vorrei cancellare la riga 3 corrispondente al nome Clocky perchè il range (D:H) ha tutte le celle vuote.

    Grazie per l'aiuto.
    [Modificato da BG66 20/01/2020 06:31]
    BG66
    Excel 2010
  • OFFLINE
    patel45
    Post: 4.204
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    10 20/01/2020 07:00
    Sub cancella_vuote()
    LR = Range("a" & Rows.Count).End(xlUp).Row
    For r = LR To 1 Step -1
      s = ""
      For c = 4 To 8
        s = s & Cells(r, c)
      Next
      If s = "" Then Rows(r).Delete
    Next
    End Sub

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    BG66
    Post: 285
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 20/01/2020 21:21
    Buonasera Patel45,
    il file originale ha vari fogli. Se volessi puntare ad un foglio specifico (Foglio5). Come modifico lo script?

    Grazie per l'aiuto.
    [Modificato da BG66 20/01/2020 21:21]
    BG66
    Excel 2010
  • ABCDEF@Excel
    10 20/01/2020 23:34
    >>> “a”
    Volevo solo fare presente che... “ , ” sono differenti da "
    Nel caso le righe fossero migliaia, usando (conta.se) è più veloce

    >>>Se volessi puntare ad un foglio specifico (Foglio5)
    ALT+F11 Basta selezionare il foglio specifico (sulla sinistra ed inserirlo alla destra)

    Sub cancella_vuote()
    Dim ur As Long, v As Long
    Sheets("Foglio5").Activate' Se hai inserto il codice in un modulo
    ur = Range("a" & Rows.Count).End(xlUp).Row
    For v = ur To 2 Step -1 'meglio mettere 2
    If Application.WorksheetFunction.CountIf(Range(Cells(v, 4), Cells(v, 8)), "") = 5 Then
    Rows(v & ":" & v).EntireRow.Delete
    End If
    Next v
    End Sub
  • OFFLINE
    patel45
    Post: 4.205
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 21/01/2020 07:39
    ottima l'idea di usare CountIf

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • 15MediaObject5,0025 2