Collegamento ipertestuale fogli nascosti



  • Collegamento ipertestuale fogli nascosti
    di Vittorino (utente non iscritto) data: 09/12/2014 21:59:05

    Ho una cartella excel con 20 fogli. Il primo foglio è il foglio MENU, da cui aprire con collegamento ipertestuale uno degli altri 19 fogli. Il problema è che i 19 fogli sono nascosti: come fare ad aprire i fogli nascosti con il semplice clik sul collegamento ipertestuale, così come faccio abitualmente con i fogli che non sono nascosti?. Mi hanno detto che occorre una macro, ma non so quale e dove poi inserirla. Grazie.



  • di Raffaele_53 (utente non iscritto) data: 10/12/2014 09:21:37

    Da provare
    Vai sul foglio Menu, premi ALT+F11 e incolla sulla parte destra questo codice.
    Salva XLSM se hai 2007 o maggiori
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim X As Long, Nome As String
    X = ActiveCell.Row
    Nome = Cells(X, 1)' si intende la colonna A
    Sheets(Nome).Visible = True
    Sheets(Nome).Activate
    End Sub
    Private Sub Worksheet_Activate()
    Dim X As Long
    For X = 2 To Sheets.Count
        Sheets(X).Visible = False
    Next X
    End Sub



  • di Lucas87 data: 10/12/2014 09:26:22

    Ciao
    Prova questo.
    Da mettere in ThisWorkbook (Questa_cartella_di_lavoro)
    Nasconde anche il foglio da cui viene lanciato il collegamento.
     
    Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Application.EnableEvents = False
    a = Split(Target.SubAddress, "!")
    Sheets(a(0)).Visible = True
    Sh.Visible = False     'nasconde il foglio di partenza
    Target.Follow
    Application.EnableEvents = True
    End Sub
    



  • di vittorino (utente non iscritto) data: 10/12/2014 15:42:09

    Provo le due soluzioni e intanto vi ringrazio.



  • di Vittorino (utente non iscritto) data: 10/12/2014 16:50:42

    Ho provato i vostri suggerimenti. Quello di Raffaele_53 non funziona, in quanto mi nasconde tutti i fogli, compreso il foglio menu, e non c'è modo di scoprirli, se non cancellando il codice vba.
    Quello di Lucas87 funziona solo se il foglio da aprire è scoperto; se il foglio da aprire è nascosto invece non lo apre. Vi ringrazio in anticipo per ogni altro suggerimento...



  • di Raffaele_53 (utente non iscritto) data: 10/12/2014 17:50:53

    Alcune cose ho errato...
    A) io ho in colonna A ho solo il testo del foglio (tu usi dei collegamenti ipertestuale che non saprei?, per aprire un foglio)
    B) Il foglio menu se è posizionato tutto a sinistra come foglio(1), non lo nasconde (ecco il perchè inizia da due--> For X = 2 To Sheets.Count)

    C) Se desideri nascondere determinati fogli (mà non tutti)
     
    Private Sub Worksheet_Activate() ' si attiva cliccando sul foglio Menu (se desideri non usarla)
    Dim X As Long, Nome As String
    For X = 2 To Sheets.Count 'oltre al foglio(1)= Menu, casomai For X = 1 To Sheets.Count
        Nome = Sheets(X).Name
        If Nome <> "yy" And Sheets(X).Name <> "yyy" Then ' Dove metto degli "AND" per ogni foglio che non desidero chiudere. Ex i foglio yy e yyy
            Sheets(Nome).Visible = False
        End If
    Next X
    End Sub



  • di vittorino (utente non iscritto) data: 10/12/2014 18:34:15

    Ti ringrazio. Ho trovato una soluzione che mi sembra soddisfacente. In partica, ho creato due macro: la macro1 mi scopre tutti i fogli nascosti, in modo che io possa aprirli comodamente con il collegamento ipertestuale. Fatto questo, con la macro2 nascondo tutti i fogli che ho deciso di nascondere (ho creato un elenco di figli da nascondere e con il registratore delle macro ho creato la macro che me li nasconde). Per completare il tutto ho creato due pulsanti di comando sul foglio Menu, per lanciare le due macro. Lo so, come soluzione non è brillantissima, comunque mi funziona egregiamente. Ringrazio tutti e vi saluto cordialmente (e alla prossima...)