Condividi:        

Nascondere righe a condizione

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

Nascondere righe a condizione

Postdi enrico43 » 02/04/17 22:59

Buonasera, utilizzando una datata funzione (di Anthony) che mi riporta in una colonna (AD2:AD300) la somma delle celle colorate (non con formattazione) di ciascuna riga, non riesco a nascondere le righe che nella colonna suddetta presentano valore zero. Inutile dire che ho trovato e provato TUTTE le soluzioni prospettate da Antony e Flash, così come quelle di altri forum.
La funzione sottostante mi riporta con =CCC(B2:AB2;$A$1) nella colonna suddetta il numero di celle che hanno il colore della cella A1.
Ovviamente ci sono molte celle nella colonna AD con valore 0 (zero)

Function CCC(SCells As Range, TCell As Range)
Application.Volatile
TColor = TCell.Interior.ColorIndex
For Each Cella In SCells
If Cella.Interior.ColorIndex = TColor Then CCC = CCC + 1
Next Cella
End Function
E queste le macro tentate, tutte non nascondono un ciufolo. Al lancio delle varie macro di prova la colonna AD con le quantità delle celle colorate presenta su tutte le celle #VALORE! che ritornano ad essere numeri con F9.

Sub Nasconde_RigheVuote()
' Macro registrata il 02/04/2017 da packardbell
'
'
Sheets("Foglio1").Select
Righe = Cells(Rows.Count, 30).End(xlUp).Row
For I = Righe To 1 Step -1
Cells(I, 30).Select
'If Selection.Value = 0 Then Selection.EntireRow.Delete
'If Not IsNumeric(Selection.Value) Then Selection.EntireRow.Delete
If Selection.Value = 0 Or Not IsNumeric(Selection.Value) Then Selection.EntireRow.Delete
Next I
End Sub

Sub Bis()
Righe = Cells(Rows.Count, 1).End(xlUp).Row
For I = Righe To 1 Step -1
Cells(I, 30).Select
If Selection.Value = 0 Then Selection.EntireRow.Delete
Next I
End Sub
Sub nascondirighe()
Dim r As Long
For r = 1 To 20
contavalori = Application.WorksheetFunction.CountA(Range("AD" & r).EntireRow)
If contavalori = 0 Then
Rows(r).EntireRow.Hidden = True
End If
Next r
End Sub

Sub nascondirighe2()
Dim r As Long
For r = 2 To 20
If Cells(r, 30) = 0 Then
Rows(r).EntireRow.Hidden = True
End If
Next r
End Sub

Sub tris()
Dim r As Long
For r = 3 To 20
contavalori = Application.WorksheetFunction.CountA(Range("AD" & r).EntireRow)
If contavalori = 0 Then
Rows(r).EntireRow.Hidden = True
End If
Next r
End Sub
Mi scuso per aver incollato le informazioni, ma non sono riuscito a "scoprire" come allegare il file o l'immagine del Foglio1.
Cordiali saluti
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Sponsor
 

Re: Nascondere righe a condizione

Postdi enrico43 » 03/04/17 08:46

Questa mattina a mente analcolica ho capito l'errore: le righe da nascondere contengono lo "0" (zero), che però non viene riconosciuto se non si tratta di valore. Infatti la funzione restituisce lo zero, ma in realtà nella cella che lo contiene c'è una formula. Quindi RISOLTO e funzionante con tutte le soluzioni, di Zero, di Ricky, di Flash e di Anthony.
Buona giornata
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino


Torna a Applicazioni Office Windows


Topic correlati a "Nascondere righe a condizione":


Chi c’è in linea

Visitano il forum: systemcrack e 84 ospiti