Nascondere le righe in base a valore inserito nella cella

Anonimo
2013-02-01T18:14:57+00:00

Un saluto a tutti ,

Ho la necessità che nel foglio1 nel momento che vado a inserire un valore nella cella B1 tutte le righe a partire da A2 che nella colonna B hanno il valore no, si nascondono in modo automatico. Nel momento che vado a togliere il valore nella cella B1 le righe vengono nuovamente scoperte. Potete aiutarmi?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-02-03T13:14:51+00:00

Ciao giudor,

supponendo che sia la cella B1 quella che può contenere il valore "no" da cambiare e che le celle di cui testare se abbiano valore "no" per nasconderle siano quelle da B2 in giù, allora:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng   As Excel.Range

Dim rngNo As Excel.Range

    If Application.Intersect(Target, Me.Range("B1")) Is Nothing Then

      ' Non fare nulla

    Else

      Set rng = Me.Columns("B")

      With rng

        Set rng = .Resize(.Rows.Count - 1).Offset(1)

      End With

      If Me.Range("B1").Value = "no" Then

        With rng

          Debug.Print rng.Address

          Set rngNo = .Find("no", LookIn:=xlValues)

          If rngNo Is Nothing Then

            ' Nessuna cella trovata.

          Else

            Do

              rngNo.Rows.Hidden = True

              Set rngNo = .FindNext(rngNo)

            Loop Until rngNo Is Nothing

          End If

        End With

      Else

        rng.Rows.Hidden = False

      End If

    End If

    Set rngNo = Nothing

    Set rng = Nothing

End Sub

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-02-03T15:40:29+00:00

    Ciao giudor,

    grazie a te per il riscontro. :)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-02-03T14:17:34+00:00

    Grazie Maurizio,

    L'ho provata e funziona pienamente. Ancora una volta sei stato grande rendendo un servizio utilissimo. Grazie per la disponibilità.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-02-03T10:52:30+00:00

    Analizzando i vari trhead ho trovato questo: http://answers.microsoft.com/it-it/office/forum/office\_2007-excel/codice-nascondivisualizza-righe/e5651abb-f95a-4143-8881-1dce0bfdd741

    che in parte risponde alle mie necessità, il codice nello specifico è questo:

    Private Sub Worksheet_Change(ByVal Target As Range)

        If Not Intersect(Target, Range("A1")) Is Nothing Then

            If Range("A1") = "0" Then

                Foglio1.Range("A2:A10").EntireRow.Hidden = True

            ElseIf Range("A1") = "1" Then

                Foglio1.Range("A2:A10").EntireRow.Hidden = False

            End If

        End If

    End Sub

    Quello che servirebbe a me, è nascondere le righe che riportano solo il valore no nella colonna B.

    Poi scoprire nuovamente le righe se dovessi cambiare il valore nella cella A1. Potete aiutarmi a correggere il codice gentilissimi esperti. Grazie per la vostra attenzione e aiuto.

    La risposta è stata utile?

    0 commenti Nessun commento