Condividi tramite

Collegamento ipertestuale in un foglio di calcolo

Anonimo
2012-09-09T11:58:59+00:00

Salve.

Avrei bisogno di sapere se (e come) sia possibile definire una funzione personalizzata che ottenga lo stesso risultato della voce "Apri percorso file" del menù contestuale di Windows:

  1. aprire il percorso del file argomento della funzione (e NON il file stesso, come quando si utilizza la funzione COLLEG.IPERTESTUALE)
  2. selezionare il file argomento della funzione tra quelli presenti nella directory.

Grazie.

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

  1. Anonimo
    2012-09-10T17:40:13+00:00

    Cerco di spiegarmi con un esempio.

    Nel mio foglio di calcolo, la colonna B contiene il percorso completo di una serie di file del computer locale:

    C:\percorso del file\file_di_esempio

    Utilizzando la funzione di Office COLLEG.IPERTESTUALE, posso inserire un collegamento ai file, per esempio nella colonna C, utilizzando la formula

    C1=COLLEG.IPERTESTUALE(B1;nome_collegamento).

    Quello che io vorrei fare, invece, è avere una funzione che apra la cartella che contiene il file, cioè apra

    C:\percorso del file\

    e, questo è il difficile, all'interno della cartella che si apre, selezioni automaticamente "file_di_esempio".

    Non credo esista una funzione che faccia ciò

    Possiamo farlo sfruttando l'evento BeforeDoubleClick o l'evento SelectionChange del foglio.

    Mettiamo il caso tu voglia trovarti nella directory che hai Scritto all'interno di una delle celle che si trova in colonna C. Inserisci questo codice nel modulo di codice del fogliodove vuoi questa cosa:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

        Dim hpl As Hyperlink

        If Target.Column = 3 Then

            If Target.Value <> "" Then

                With Application.FileDialog(msoFileDialogOpen)

                    .AllowMultiSelect = True

                    .InitialFileName = Target.Value

                    .Show

                End With

            End If

        End If

        Cancel = True

        Set hpl = Nothing

    End Sub

    Se preferisci l'evento SelectionChange:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        Dim hpl As Hyperlink

        If Target.Column = 3 Then

            If Target.Value <> "" Then

                With Application.FileDialog(msoFileDialogOpen)

                    .AllowMultiSelect = True

                    .InitialFileName = Target.Value

                    .Show

                End With

            End If

        End If

        Set hpl = Nothing

    End Sub

    Utilizzane una sola alla volta e vedi la differenza. In entrambi i casi il contenuto della cella deve essere coerente con la cartella che vuoi aprire, ad esempio:

    C:\Test\Cartella\

    Se invece, hai ad esempio gli Hyperlinks completi in colonna A e vuoi portarti all'interno della cartella che contiene quel file facendo doppio click sulla cella di colonna C che si trova sulla stessa riga:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

        Dim s As String

        Dim rng As Range

        Dim hpl As Hyperlink

        Dim lng As Long

        Dim lPos As Long

        If Target.Column = 3 Then

            For Each hpl In Me.Hyperlinks

                If hpl.Range.Address = Target.Offset(0, -2).Address Then

                    s = hpl.Address

                    For lng = 1 To Len(s)

                        If Mid(s, lng, 1) = "" Then

                            lPos = lng

                        End If

                    Next

                    With Application.FileDialog(msoFileDialogOpen)

                        .AllowMultiSelect = True

                        .InitialFileName = Mid(s, 1, lPos)

                        .Show

                    End With

                End If

            Next

        End If

        Cancel = True

        Set hpl = Nothing

    End Sub

    Prova un po'.

    Grazie.

    0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-09-10T18:47:32+00:00

    Grazie a te.

    Provo e ti faccio sapere.

    0 commenti Nessun commento
  2. Anonimo
    2012-09-10T16:18:53+00:00

    Cerco di spiegarmi con un esempio.

    Nel mio foglio di calcolo, la colonna B contiene il percorso completo di una serie di file del computer locale:

    C:\percorso del file\file_di_esempio

    Utilizzando la funzione di Office COLLEG.IPERTESTUALE, posso inserire un collegamento ai file, per esempio nella colonna C, utilizzando la formula

    C1=COLLEG.IPERTESTUALE(B1;nome_collegamento).

    Quello che io vorrei fare, invece, è avere una funzione che apra la cartella che contiene il file, cioè apra

    C:\percorso del file\

    e, questo è il difficile, all'interno della cartella che si apre, selezioni automaticamente "file_di_esempio".

    0 commenti Nessun commento
  3. Anonimo
    2012-09-09T16:03:42+00:00

    Salve.

    Avrei bisogno di sapere se (e come) sia possibile definire una funzione personalizzata che ottenga lo stesso risultato della voce "Apri percorso file" del menù contestuale di Windows:

    1. aprire il percorso del file argomento della funzione (e NON il file stesso, come quando si utilizza la funzione COLLEG.IPERTESTUALE)
    2. selezionare il file argomento della funzione tra quelli presenti nella directory.

    Grazie.

    Non è molto chiaro quello che vuoi.

    Partendo da qui:

    Public Sub m()

        With Application.FileDialog(msoFileDialogOpen)

            .AllowMultiSelect = True

            .InitialFileName = "C:\NomeCartella"

            .Show

        End With

    End Sub

    Cosa vorresto fare?

    Grazie.

    0 commenti Nessun commento