Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione di dati
Ciao Andrea,
Norman: GRAZIE! Hai fatto davvero tantissimo e sono in debito con te.
Condivido al 100% l'idea di NON modificare il file originale ma di crearne uno nuovo da cui originare il .pdf, così come non avrei mai usato Word.
Ho notato anche un altro comportamento "strano" (e poco utile) di Excel.
Se scrivi un una cella "www.treggia.it", Excel ti crea automaticamente il collegamento ipertestuale (che tante volte elimino con un Ctrl-Z perché non mi è utile).
Invece, se fai un copia/incolla della medesima stringa, sia con Copia-Valori che con un Copia tipo da Notepad, Excel NON la riconosce come un indirizzo e NON crea in automatico il collegamento ipertestuale: se desideri crearlo, devi "fingere" di editare il campo (ad esempio: F2 e poi Invio).
Peccato, perché invece di COLLEG.IPERTESTUALE si potrebbe comporre la stringa della URL, che è un link, ma senza l'automatismo che lo trasforma in un collegamento è inutile.
A meno che non si faccia una macro che fa: "F2, Invio, giù di una riga, da capo fino alla fine" ...
Sai di come si possa, se si può, dire ad Excel di creare un collegamento anche a fronte di un Incolla?
Non sono a conoscenza di alcun mezzo per creare un collegamento ipertestuale incollando una stringa.
Comunque, una soluzione che potrei considerare è quella di creare automaticamente i collegamenti ipertestuali richiesti nella colonna C sfruttando una procedura di evento Worksheet_Change e senza utilizzare formule intermedie.
Quindi, prova qualcosa del genere:
'========>>
Option Explicit
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, rCell As Range
Dim sAddress As String
Const sColonne As String = "B"
Set Rng = Intersect(Me.Columns(sColonne), Target)
If Not Rng Is Nothing Then
Application.EnableEvents = False
For Each rCell In Rng.Cells
With rCell
.Offset(0, 1).Hyperlinks.Delete
On Error Resume Next
If Not IsEmpty(.Value) And Not IsEmpty(.Offset(0, -1).Value) Then
sAddress = .Offset(0, -1) & .Value & ".com"
Me.Hyperlinks.Add Anchor:=.Offset(0, 1), Address:=sAddress, TextToDisplay:=.Value
End If
On Error GoTo 0
End With
Next rCell
End If
Application.EnableEvents = True
End Sub
'<<========
In questo modo quando uno o più valori vengono inseriti o modificati nella colonna B, i collegamenti ipertestuali richiesti vengono automaticamente creati nella colonna C.
Potresti scaricare il mio file di prova Andrea20220323.xlsm
===
Regards,
Norman