Excel Forum Per condividere esperienze su Microsoft Excel

Nascondi righe se...

  • Messaggi
  • OFFLINE
    enri1969
    Post: 1
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 16/01/2017 14:35
    Buongiorno a tutti

    Volevo chiedere se si può in nascondere delle righe a seconda del valore che ho in una cella con menù a tendina.

    Se per esempio in un menù a tendina seleziono il numero di NAVI (mettiamo 10), vorrei che dal foglio Excel (che ha 30 righe, una per ogni nave) mi nasconda dalla 11 alla 30...

    Provo ad inserire un file come esempio


    [Modificato da enri1969 16/01/2017 14:36]
  • OFFLINE
    patel45
    Post: 3.617
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 16/01/2017 16:28
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then
      Range(Cells(7 + Target.Value, 1), Cells(37, 1)).EntireRow.Hidden = True
    End If
    End Sub

    macro da mettere nel modulo del foglio1.
    e per mostrare tutte le righe ci pensi tu ?
    [Modificato da patel45 16/01/2017 16:30]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 1
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 16/01/2017 16:36
    patel45, 16/01/2017 16.28:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then
      Range(Cells(7 + Target.Value, 1), Cells(37, 1)).EntireRow.Hidden = True
    End If
    End Sub

    macro da mettere nel modulo del foglio1.
    e per mostrare tutte le righe ci pensi tu ?

    Grazie mille !!!

    Però mi sa che non so come riscoprirle nel caso cambiassi ipotesi di numero navi
    mia aiuti ? :)

  • OFFLINE
    patel45
    Post: 3.619
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 16/01/2017 16:59
    inserisci nel menù a tendina un valore che, se selezionato, scopra tutto e poi dimmelo

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 2
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 16/01/2017 17:04
    Intanto grazie mille...e ti allego il file

    Ultima domanda:
    senza il "scopri tutto" si può scoprire in base al valore della tendina

    Se per esempio metto 8 poi mi accorgo che me ne servono 10, posso fare senza prima scoprire tutto ?

  • OFFLINE
    patel45
    Post: 3.620
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 16/01/2017 17:15
    cancella scopri tutto, lascia la convalida che parte da A6 e prova questa
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then
      If Target.Value = "" Then
        Rows("7:50").Hidden = False
        Exit Sub
      End If
      Rows("7:50").Hidden = False
      Range(Cells(7 + Target.Value, 1), Cells(37, 1)).EntireRow.Hidden = True
    End If
    End Sub

    poi salva il file con l'estensione xlsm altrimenti perdi la macro
    [Modificato da patel45 16/01/2017 17:16]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 3
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 16/01/2017 17:20
    PERFETTO, è quello che volevo !!!
    grazie molte !!!!!!

    ps
    Forum utilissimo
  • OFFLINE
    enri1969
    Post: 4
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 16/01/2017 18:19
    Scusami, ultimissima cosa

    Se metto un numero navi mi nascomde la riga 37 (vorrei visibile)
    Ho provato a ritoccare i dati della macro ma non riesco
    Soprattutto quando devo riscoprire
    In pratica la riga 37 deve essere sempre visibile

    Ti allego file

    GRAZIE ANCORA
  • OFFLINE
    patel45
    Post: 3.624
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 16/01/2017 18:45
      Range(Cells(7 + Target.Value, 1), Cells(36, 1)).EntireRow.Hidden = True

    basta cambiare il 37 in 36
    [Modificato da patel45 16/01/2017 18:45]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 5
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 17/01/2017 09:28
    Ciao
    ci ho provato e quando nasconde funziona
    ed anche se scopre
    Ma se scelgo 30 dal menu tendina la 37 non me la fa vedere...
    Solo col 30...
    Scusa se stresso...

    A parte questo, ti posso chiedere un affinamento ?
    Se in base alla prima tendina volessi anche nascondere delle righe dopo (ti mando Excel)
    Se quindi dalla prima tendina scelgo 10 mi dovrebbe nascondere anche le righe che vanno dalla 52 alla 70

    Scusa se stresso
    Ma la tua macro mi aiuta moltissimo
  • OFFLINE
    patel45
    Post: 3.626
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    10 17/01/2017 10:08
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then
      If Target.Value = "" Or Target.Value = 30 Then
        Rows("7:80").Hidden = False
        Exit Sub
      End If
      Rows("7:80").Hidden = False
      Range(Cells(7 + Target.Value, 1), Cells(36, 1)).EntireRow.Hidden = True
      Range(Cells(42 + Target.Value, 1), Cells(70, 1)).EntireRow.Hidden = True
    
    End If
    End Sub

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 6
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 17/01/2017 11:02
    Perfetto !!!
    Grazie molte ancora
  • 15MediaObject5,00112 1