elenco in discesa con collegamento ipertestuale

Anonimo
2024-11-21T20:55:48+00:00

Buongiorno a tutti e grazie fin da ora per chi potrà aiutarmi.

Ho un foglio di lavoro con diverse linguette.

Nella linguetta "dati" ho tutte le voci che compariranno nella linguetta "registro" con un elenco in discesa o un menù a tendina.

vorrei collegare tutte le voci presenti in "dati" con un collegamento ad un altro foglio di lavoro exell personalizzato per ogni singola voce. e fin qui nessun problema.

il problema sorge quando io vorrei andare sulla linguetta "registro" e quando seleziono il menù a tendina vorrei che poi quella voce selezionata mi portasse, cliccandoci sopra, al collegamento creato in "dati"

E' una cosa possibile o chiedo troppo a exel?

Grazie mille!

Microsoft 365 e Office | Excel | Per il lavoro | Altro

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

8 risposte

Ordina per: Più recente
  1. Anonimo
    2024-11-22T19:42:45+00:00

    Prova a vedere il tuo file di esempio: File esempio

    Premessa: ho trasformato in tabella anche l'intervallo delle voci delle entrate e uscite (intervallo con intestazione "eu") per poter intercettare il nome della tabella anche per quelle voci.

    In alcune voci ho inserito dei collegamenti a file vuoti creati appositamente. Quindi nel tuo PC avrai una segnalazione se clicchi sul collegamento ipertestuale.

    Ho sfruttato l'evento "doppio click" del foglio.

    Nel modulo VBA del foglio "Rapporto finanziario" ho inserito il seguente codice VBA:

    Option Explicit 
    
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    
       Dim rngVoceSpesa As Range 
    
       Dim sNomeTabella As String 
    
       Dim oLoTabVoce As ListObject 
    
       Dim idxVoce As Variant 
    
       Dim rngVoce As Range 
    
       Dim sHiperLink As String 
    
       Set rngVoceSpesa = Me.ListObjects("TabellaPreventivo").ListColumns("VOCE SPESA").DataBodyRange 
    
       If Not Intersect(Target, rngVoceSpesa) Is Nothing Then 
    
          If Target.Value <> "" And Target.Offset(, -1).Value <> "" Then 
    
             Cancel = True 
    
             Select Case Target.Offset(, -1).Value 
    
                Case "Profitti" 
    
                   sNomeTabella = "VociReddito" 
    
                Case "Spese" 
    
                   sNomeTabella = "VociSpesa" 
    
                Case "EU" 
    
                   sNomeTabella = "TabellaEntrateUscite" 
    
             End Select 
    
             Set oLoTabVoce = ThisWorkbook.Worksheets("Dati elenco").ListObjects(sNomeTabella) 
    
             idxVoce = Application.Match(Target.Value, oLoTabVoce.ListColumns(1).DataBodyRange.Value, 0) 
    
             If Not IsError(idxVoce) Then 
    
                 Set rngVoce = oLoTabVoce.ListColumns(1).DataBodyRange(idxVoce) 
    
                 If rngVoce.Hyperlinks.Count > 0 Then 
    
                   sHiperLink = rngVoce.Hyperlinks(1).Address ' .Address 
    
                   On Error Resume Next 
    
                   rngVoce.Hyperlinks(1).Follow 
    
                   If Err.Number <> 0 Then 
    
                      MsgBox "Il file """ & sHiperLink & """ non è stato trovato!" & vbNewLine & _ 
    
                             "Verificare il collegamento della voce """ & rngVoce & """ nella tabella """ & oLoTabVoce.Name & """", vbCritical, "File non trovato" 
    
                   End If 
    
                 End If 
    
             End If 
    
          End If 
    
       End If 
    
    End Sub 
    

    La procedura verifica che venga eseguito il doppio click con il mouse in una delle celle dalla colonna "VOCE SPESA".

    Verifica che sia la cella dove si sia eseguito il doppio click, che quella alla sua sinistra, non siano vuote.

    Se sono soddisfatte tutte le precedenti condizioni legge il valore presente nella cella della colonna "TIPO VOCE" e in base al valore presente viene determinato in quale delle tabelle del foglio "Dati elenco" andare a cercare la voce.

    Effettua una ricerca (match) e se trova la voce verifica se vi sia presente un collegamento ipertestuale.

    Se è presente esegue il "Follow" del primo collegamento ipertestuale presente.

    Se il "Follow" dovesse fallire, perché magari il file del collegamento non viene trovato, viene lanciato un messaggio.

    In teoria, se l'inserimento nella colonna "TIPO VOCE" è sempre corretta, non si dovrebbero avere errori per il fatto che non viene trovata la "tabella" (oggetto ListObject). Sarebbe opportuno gestire anche questo eventuale possibile errore.

    Ma per il momento prova la procedura così come è per vedere se riesce a fare quanto da te desiderato.

    ciao

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2024-11-22T18:12:57+00:00

    esato esatto!

    si, non ho fatto nessun collegamento perchè condividendo il file avrei poi dovuto condividere altre cartelle.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-11-22T17:47:24+00:00

    https://we.tl/t-Dr3O6MWMpM

    Non so se sono riuscito a spiegarmi :(

    Insomma :-)

    Vediamo se ho capito.

    Nel foglio nominato "Rapporto finanziario" selezioni in una cella della colonna "TIPO VOCE" una delle voci presenti nell'elenco a discesa della cella.

    In questo modo viene caricato un altro elenco a discesa nella cella della relativa riga della colonna "VOCE SPESA".

    L'elenco varia a seconda del tipo di voce selezionata nella colonna "TIPO VOCE".

    Se la voce è "Profitti" l'elenco prende i dati dal foglio "Dati elenco" dalla tabella "VociReddito" (che ha come intestazione "PROFITTI").

    Se la voce è "Spese" l'elenco prende i dati dal foglio "Dati elenco" dalla tabella "VociSpesa" (che ha come intestazione "SPESE").

    Se la voce è "EU" l'elenco prende i dati dal foglio "Dati elenco" dall'intervallo che ha come intestazione "eu".

    Alle voci presenti nelle suddette tabelle (o intervallo per "eu") hai associato dei collegamenti ipertestuali a dei file esterni?

    Perché nelle voci non vedo collegamenti ipertestuali. Forse li hai eliminati nel file di test?

    Tu vorresti che in qualche modo, es. doppio click del mouse, sulla cella dove è presente una delle voci nella colonna "VOCE SPESA" venga aperto il file esterno il cui collegamento ipertestuale è presente nella corrispondente voce nel foglio (e relative tabelle) "Dati elenco"?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-11-22T17:25:41+00:00

    https://we.tl/t-Dr3O6MWMpM

    dovresti visionarlo da questo link.

    Praticamente nella linguetta dati ci sono tutte le voci che vorrei collegare ad un file excel esterno, cioè in un'altra cartella.

    Quando vado sulla linguetta "rapporto finanziario" nella colonna C seleziono il tipo di voce che poi posso attraverso una selezione a discesa nella colonna D scelgo. nella colonna D mi compaiono tutte le voci presenti nella linguetta "Dati" in cui ho fatto il collegamento.

    Ecco il mio proposito sarebbe quello che una volta selezionata la voce nella colonna D io possa andare da lì direttamente al collegamento che ho creato nella linguetta dati.

    Non so se sono riuscito a spiegarmi :(

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2024-11-22T15:59:43+00:00

    Dovresti incollare il link del file condiviso tramite un qualche strumento "cloud" (es. On Drive, Drop Box o simili).

    ciao

    La risposta è stata utile?

    0 commenti Nessun commento