link da textbox



  • link da textbox
    di accordix data: 04/05/2016 22:07:27

    Buonasera a tutti

    Ho allegato un file al cui interno oltre al file LinkFile ci sono 3 file di testo in una cartella ARCHIVIO che dovrei aprire dall'interno di una textbox
    In pratica vorrei sapere se si puo inserire un iperlink all'interno di una textbox o label o combobox ecc



  • di cromagno data: 05/05/2016 01:45:02

    Ciao accordix,

    supponendo che la cartella "archivio" si trovi nello stesso percorso del file excel e che in colonna A ci siano i nomi dei file di testo, con una combobox potresti usare il codice riportato sotto.

    Ti riallego il file...
     
    Private Sub CommandButton1_Click()
    SelezionaFileEsterno
    End Sub
    Public Sub SelezionaFileEsterno()
    Dim percorso As String
    
    With Me
        If .ComboBox1.Value = "" Then
            MsgBox "Scegliere un file da aprire!!!"
            .ComboBox1.SetFocus
        End If
        percorso = ThisWorkbook.Path & "archivio" & .ComboBox1.Value & ".txt"
        ThisWorkbook.FollowHyperlink percorso, , True
    End With
    End Sub
    
    Private Sub CommandButton2_Click()
    Unload UserForm1
    ActiveWorkbook.Close True
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim uRiga As Long, i As Long
    
    uRiga = Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To uRiga
        Me.ComboBox1.AddItem Range("A" & i).Value
    Next i
    End Sub
    



  • di accordix data: 05/05/2016 06:03:23

    L'unico problema e' che i nomi dei files non possono trovarsi in "colonna a" ma in una sola cella per motivi organizzativi del foglio percio nel mio file li vedi nella cella(1,1)



  • di cromagno data: 05/05/2016 20:13:35

    Ciao,
    in questo caso puoi usare la funzione il metodo "Split" per dividere la stringa in A1 in base alla "mandata a capo" (Chr(10)).
    Poi esegui il ciclo per caricare la combobox (come prima) ma ti conviene utilizzare "Application.WorksheetFunction.Clean" per eliminare i caratteri non stampabili (sarebbe la funzione LIBERA).

    Ti riallego il file ("LinkFile2")...
     
    Private Sub CommandButton1_Click()
    SelezionaFileEsterno
    End Sub
    Public Sub SelezionaFileEsterno()
    Dim percorso As String
    
    With Me
        If .ComboBox1.Value = "" Then
            MsgBox "Scegliere un file da aprire!!!"
            .ComboBox1.SetFocus
        End If
        percorso = ThisWorkbook.Path & "archivio" & .ComboBox1.Value & ".txt"
        ThisWorkbook.FollowHyperlink percorso, , True
    End With
    End Sub
    
    Private Sub CommandButton2_Click()
    Unload UserForm1
    ActiveWorkbook.Close True
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim nomi_file() As String, i As Long
    
    nomi_file = Split(Range("A1").Value, Chr(10))
    
    For i = 0 To UBound(nomi_file)
        nomi_file(i) = Application.WorksheetFunction.Clean(nomi_file(i))
        Me.ComboBox1.AddItem nomi_file(i)
    Next i
    End Sub
    



  • di accordix data: 05/05/2016 22:39:43

    proprio quello che cercavo

    bella la procedura

    grazie cro'

    'mi vado a guardare la funzione split