macro collegamenti ipertestuali



  • macro collegamenti ipertestuali
    di wubix (utente non iscritto) data: 22/01/2017 17:51:32

    buongiorno a tutti e complimenti per il forum che ogni tanto uso grazie alla funzione di ricerca.
    premetto che non sono un grande esperto, ma "ci provo".
    ho creato un file con molti fogli di lavoro, alla fine c'è un file "report" che viene alimentato da una macro che sostanzialmente mi pesca:
    nomi dei fogli
    contenuto di alcune celle
    mi colora le celle del foglio report con gli stessi colori della linguetta foglio e delle celle corrispondenti.
    quanto sopra funziona correttamente.
    avrei una ulteriore necessità però, dato che il file contiene molti fogli, quando devo trovarne uno devo sempre scorrerne molti, mi è quindi venuto in mente che potrei inserire dei collegamenti ipertestuali in corrispondenza delle celle con il nome del foglio.
    ovviamente facendolo a mano è semplice e funziona, però la menata è che devo farlo per tutti i fogli uno ad uno .
    secondo voi c'è la possibilità di automatizzare il processo?

    grazie

    Walter



  • di mabolsie data: 22/01/2017 17:57:49

    Ciao una soluzione sarebbe fare una macro con un ciclo for each che ti cerchi il foglio e lo selezioni.

    allega se puoi un file esempio.

    Ciao Max



  • di Albatros54 data: 22/01/2017 18:13:04

    h t t p://www.excelvba.it/Forum/story/Visual_Basic_for_Applications/Macro_per_collegamenti_ipertestuali.html.
    Potresti cominciare da qua!!
    Ciao
    albatros54





  • di wubix (utente non iscritto) data: 22/01/2017 20:02:41

    ciao e grazie

    ho dato un'occhiata al link, ma non credo faccia al caso mio perché lì si va a automatizzare una cella ben precisa.

    io vorrei che nella mia tabella finale, ci sia la possibilità di automatizzare la creazione di un link nel campo "nome foglio", ovvero cliccando su folio1 mi deve aprire il foglio1

    questa macro deve essere indipendente da quella che mi crea la tabella nel foglio "report", preferirei poterla lanciare successivamente.

    codice nome foglio
    WPLA2HW5404 foglio1
    WFLA2HW5405 foglio2
    WRLA4HW5410 foglio3
    WRLA4HW5411 foglio4

    grazie per la pazienza

    W



  • di mabolsie data: 22/01/2017 20:08:06

    ... quindi se ho ben capito hai una colonna con i codici e vorresti che cliccandoci sopra ti apra il foglio collegato ?



  • di mabolsie data: 22/01/2017 20:41:48

    ciao sarò cocciuto però ti ho allegato un file che farebbe al caso tuo senza rompersi la testa contro le ancore.

    provalo.

    Ciao Max



  • di Albatros54 data: 23/01/2017 08:33:54

    vado di fretta, prova il codice sotto, studialo
    ciao
    albatro54
     
    Sub mIndiceFogli()
       
        Dim sh As Worksheet
        Dim lRiga As Long
    
        lRiga = 1
    
        With ActiveSheet
            .Cells.Clear
            For Each sh In ThisWorkbook.Worksheets
                If sh.Name <> .Name Then
                    .Range("A" & lRiga).Hyperlinks.Add _
                        Anchor:=.Range("A" & lRiga), _
                        Address:="", _
                        SubAddress:=sh.Name & "!a1", _
                        TextToDisplay:=sh.Name
                        lRiga = lRiga + 1
                End If
            Next
        End With
       
        Set sh = Nothing
    
    End Sub






  • di wubix (utente non iscritto) data: 23/01/2017 20:19:06

    ciao e grazie

    ho provato la macro, purtroppo non funziona, nel senso che crea i link ma poi cliccandoci sopra non mi apre il foglio (non succede niente, da un errore generico).

    poi mi fa sparire tutto quello che ho sul foglio

    ho provato a lavorarci, anche per spostare l'elenco sulla colonna B e partendo dalla riga 2 (colonna B ok, riga2 mi da un errore)

    adesso ci riprovo ancora...

    grazie ancora

    W



  • di wubix (utente non iscritto) data: 23/01/2017 21:00:02

    x mabolsie

    scusa ma inizialmente non vedevo il file allegato

    ok, ho importato il foglio "matrice" nel mio documento, FUNZIONA, nel senso che devo fare copia/incolla della lista dei codici dal foglio "report", poi devo selezionare il nome del foglio (ahimè nel tuo esempio erano 123 e si potevano inserire a manina, nella mia realtà i nomi dei fogli sono descrittivi e alfanumerici) e copiarlo, poi premere "cerca codice" incollare il nome e OK, il foglio si apre.

    meglio di prima? certamente
    un po' macchinoso? insomma...

    l'idea iniziale era più interessante, moooolto più veloce, soprattutto se hai il capo dietro le spalle che vuole immediatamente QUELLA scheda però siccome a caval donato non si guarda in bocca intanto uso questa, se poi qualche altra anima buona vuole provarci a risolvere sarò ancora più felice.

    grazie

    W



  • di mabolsie data: 23/01/2017 21:09:49

    Bene !!!

    Ciao Max



  • di mabolsie data: 23/01/2017 22:24:14

    Ciao Wubix ti ho riallegato lo stesso file con una modifica per non farti fare il copia incolla.
    praticamente premendo il pulsante ora ti si apre un form con l'elenco dei tuoi codici, non fai altro che sceglierli e premere il pulsante cerca...

    Ciao max



  • di wubix (utente non iscritto) data: 24/01/2017 15:30:40

    ciao

    ti ringrazio molto, il tuo file funziona, ma se tento di esportare il foglio "matrice" dentro nel mio, mi da un errore "manca oggetto" e mi apre la pagina VBA di debug con questo testo:

    Private Sub CommandButton1_Click()
    UserForm1.Show
    End Sub

    scusa ma ho provato diverse soluzioni ma continua a darmi errore.

    grazie ancora

    W



  • di mabolsie data: 24/01/2017 18:20:42

    certo, non basta copiare il mio file matrice, è solo un esempio. Devi aprire l'editor vba e crearti la userform con una combobox ed un commandbutton, poi copi il codice nel commandbutton della userform e apri le proprietà della combobox nella proprietà row source metti il range dove sono i tuoi codici nel foglio master .
    provaci e fammi sapere.

    Ciao Max