Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Collegamento ipertestuale con testo specifico

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Collegamento ipertestuale con testo specifico

Postdi BG66 » 30/01/19 18:54

Ciao a tutti,
vorrei che digitando "positivo" nella colonna B del foglio sommario:
mi si apra il percorso e cliccando sopra il pdf presente nella cartella, si crei un collegamento ipertestuale al file scelto ma lasciando immutato il testo digitato (ossia "positivo").

Lascio nel file i vari e infruttuosi tentativi. L'unica cosa che sono riuscito a fare e creare il corretto riferimento alla cartella da aprire :oops: ....anche per il target legato al testo ho dovuto soprassedere e ripiegare su un doppio click....

Purtroppo mi sembra sempre più evidente che l'impegno vostro a farmi imparare si scontra con la mia incapacità di comprendere.

Grazie per l'eventuale aiuto.

https://www.dropbox.com/s/xi0tzpwjsvsywz9/collegamenti%20ipertestuali.xlsm?dl=0
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 198
Iscritto il: 20/08/16 07:44

Sponsor
 

Re: Collegamento ipertestuale con testo specifico

Postdi Marius44 » 30/01/19 23:01

Ciao Gene
hai provato a fare una ricerca nel Forum?

Guarda a questo indirizzohttp://www.pc-facile.com/forum/viewtopic.php?t=102081

Ciao,
Mario
Marius44
Utente Senior
 
Post: 459
Iscritto il: 07/09/15 22:00

Re: Collegamento ipertestuale con testo specifico

Postdi BG66 » 31/01/19 07:59

Ciao Mario,
la mia frase sconsolata nasceva proprio dai tanti tentativi fatti ( tra cui anche l'adattamento non riuscito di quanto proposto da Anthony nel post da te citato).... e dal fatto di ritenere che anche se in maniera statica una parte dello script poteva/doveva essere nelle mie corde!!
.....per questo poi mi sono affidato al buon cuore di qualcuno :cry:

Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 198
Iscritto il: 20/08/16 07:44

Re: Collegamento ipertestuale con testo specifico

Postdi Anthony47 » 31/01/19 10:36

Ci eri andato abbastanza vicino, con la tua Sub creaIper; l'ho modificata come segue, facendola diventare una sub richiamabile:
Codice: Seleziona tutto
Sub creaIper(ByRef myT As Range)
 ''   Dim wk1 As Workbook 'dichiaro le variabili
    Dim sh1 As Worksheet
    Dim cartellainiziale As String                       'MMM

On Error GoTo RigaErrore 'gestione errori
''    Application.ScreenUpdating = False
''    Set wk1 = ThisWorkbook 'metto i riferimenti ai files
    Set sh1 = ThisWorkbook.Sheets("sommario")     '++
   
    cartellainiziale = "C:\LettD\__conferme officina\2019"
    With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = cartellainiziale
    .Title = "Seleziona cartella e File"
    .AllowMultiSelect = False
    .Filters.Add "PDF", "*.pdf", 1         '+++
    .Show
    ActiveSheet.Hyperlinks.Add _
        Anchor:=myT, _
        Address:=.SelectedItems(1), _
        TextToDisplay:=myT.Value, _
        ScreenTip:="Apri " & .SelectedItems(1)              'MMM(4)
    End With
    Application.CutCopyMode = False
''    Application.DisplayAlerts = True
''    Application.ScreenUpdating = True
'riga sempre eseguita
RigaChiusura:
    'Set a Nothing delle variabili oggetto
    Set sh1 = Nothing
    Set wk1 = Nothing
    Exit Sub
'in caso di errore
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura
End Sub
Le modifiche al tuo codice sono nelle righe marcate +++ oppure MMM; alcune righe poi le ho eliminate commentandole con ' ' (doppio apostrofo)

Ho poi inserito una Worksheet_Change da cui la richiamo:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ckCol As Long, myC As Range
'
ckCol = 2                   '<<< Colonna B
For Each myC In Target
    If myC.Column = ckCol Then
        If LCase(myC.Value) = "positivo" Then
            Call creaIper(myC)
        Else
        'Cancella eventuali HLink presenti
                myC.Hyperlinks.Delete
        End If
    End If
Next myC
End Sub


La Worksheet_Change si occupa di "chiamare" la Sub creaIper per inserire gli hyperlink ma anche di rimuovere eventuali hyperlinks su celle da cui viene rimosso "positivo"; inoltre l'uso di For Each myC In Target consente di gestire anche modifiche multiple (interviene ad esempio quando si cancellano piu' celle)

Prova e fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16531
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Collegamento ipertestuale con testo specifico

Postdi BG66 » 31/01/19 12:32

Ciao Anthony,
Ci eri andato abbastanza vicino, con la tua Sub creaIper...

Intanto grazie a nome della mia autostima ;)

Domani al rientro in sede farò immediatamente un test sul file master.

A presto
Gene
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 198
Iscritto il: 20/08/16 07:44

[RISOLTO] Collegamento ipertestuale con testo specifico

Postdi BG66 » 02/02/19 19:00

[RISOLTO]
Grazie Anthony,
ti confermo che lo script è perfetto (anche nel file master post-integrazione :) ).

Alla prossima.
BG66
Excel2010
Avatar utente
BG66
Utente Senior
 
Post: 198
Iscritto il: 20/08/16 07:44


Torna a Applicazioni Office Windows


Topic correlati a "Collegamento ipertestuale con testo specifico":


Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti