Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Script VBA per introdurre hyperlink

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Script VBA per introdurre hyperlink

Messaggioda Foto Utenteboiler » 4 mar 2018, 11:30

Ciao a tutti

Sto cercando di fare qualcosa che excel non fa di suo e sono a buon punto.
Ora però dovrei inserire dinamicamente un link in una cella e non ci riesco.

Questo è il codice VBA ridotto all'osso (in realtà la funzione fa diverse altre cose e i campi sono dinamici, non hardcoded come qui):

Codice: Seleziona tutto
Public Function AddHyp()

Application.Volatile

Worksheets(1).Hyperlinks.Add _
    Anchor:=Worksheets(1).Range("V10"), _
    Address:="http://www.google.com", _
    SubAddress:="", _
    ScreenTip:="Google", _
    TextToDisplay:="Google"

End Function


Non succede nulla e nella cella in cui chiamo "=AddHyp()" appare l'errore #VALUE!.

Lavoro oggi per la prima volta con VBA, il mio codice è basato su esempi trovati online, quindi può benissimo essere che mi sfugga qualcosa di fondamentale.
Help :oops:

Grazie e saluti, Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

0
voti

[2] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utenteboiler » 4 mar 2018, 12:04

Informazione aggiuntiva: se faccio partire lo script nel VBA-Editor con F5, il link appare correttamente nella cella V10 :shock:
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

1
voti

[3] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utentelelerelele » 4 mar 2018, 18:15

su che programma usi VBA?

in vecchie versioni di Excel il VBA era molto efficiente, nelle nuove versioni ho avuto problemi visto che sono state notevolmente ristrette le possibilità di agire entro le celle, specie per quanto riguarda l'evento che avvia la funzione VBA.

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[4] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utenteboiler » 4 mar 2018, 18:35

lelerelele ha scritto:su che programma usi VBA?

Excel (in Office Standard 2010)

Un'altra cosa interessante:
Codice: Seleziona tutto
Debug.Print (Worksheets(sheetName).Rows(Location.Row).Height)
Worksheets(sheetName).Rows(Location.Row).Height = 100


Commentando la seconda riga non ci sono errori e nel Log appare l'altezza della riga (15).
Togliendo il commento alla seconda riga ottengo di nuovo l'errore #VALUE!.

Ma stando alla VBA Reference, Height dovrebbe essere leggibile e scrivibile:
https://msdn.microsoft.com/en-us/vba/ex ... erty-excel

Non ci capisco piú niente...
Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

0
voti

[5] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utentelelerelele » 4 mar 2018, 18:39

come usi vba entro la cella?

non è che la scritta error compaia perché da vba non c'è nessun output nella cella?
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[6] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utenteboiler » 4 mar 2018, 18:51

lelerelele ha scritto:come usi vba entro la cella?


Così:
problema_VBA.PNG
problema_VBA.PNG (6.16 KiB) Osservato 5166 volte


In U13 chiamo la funzione e mi aspetteri che appaia il link in V10 (a destra dell'uno). Invece il risultato è quello che vedi.

non è che la scritta error compaia perché da vba non c'è nessun output nella cella?


Ho aggiunto un valore di ritorno, ma non è cambiato nulla. Commentando la riga in cui aggiungo il link mi ritrovo lo zero in U13 come mi aspetterei.
Questo il code aggiornato (con il valore di ritorno):
Codice: Seleziona tutto
Public Function AddHyp()

Application.Volatile

Worksheets(1).Hyperlinks.Add _
    Anchor:=Worksheets(1).Range("V10"), _
    Address:="http://www.google.com", _
    SubAddress:="", _
    ScreenTip:="Google", _
    TextToDisplay:="Google"

AddHyp = 0

End Function
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

0
voti

[7] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utentelelerelele » 4 mar 2018, 19:05

in effetti non ho mai usato questo metodo, per quel poco ho usato questo per convertire la sequenza di numeri in data corretta con gli spazi :

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Static GiaFatto As Boolean

    Dim str As String
   
If GiaFatto = False Then
If Target.Cells.Count > 1 Then Exit Sub

str = Target.Cells.Formula

If (Len(str) < 5) Then Exit Sub

    If Target.Cells.Column = 7 Then

        If Len(str) < 6 Then
       
        str = Mid$(str, 1, 1) & "/" & Mid$(str, 2, 2) & "/" & Mid$(str, 4, 2)
       
        Else
        str = Mid$(str, 1, 2) & "/" & Mid$(str, 3, 2) & "/" & Mid$(str, 5, 2)
        End If
   
   GiaFatto = True
Target.Value = DateValue(str)
    End If
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[8] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utenteboiler » 5 mar 2018, 18:29

Grazie per il sostegno, Foto Utentelelerelele
Nel frattempo ho scoperto due cose. Una è un'osservazione di carattere generale, l'altra potrebbe spiegare i malfunzionamenti. A te di scoprire cosa è cosa...

  • Quando aggiungo in una cella =AddHyp() viene in qualche modo linkato nella tabella il codice che in quel preciso momento descrive la funzione. Modifiche al codice VBA non influenzano il comportamento della funzione in quella cella fino al suo cancellamento e reinserimento.
  • Che linguaggio di merda.

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

0
voti

[9] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utentefairyvilje » 5 mar 2018, 19:10

boiler ha scritto:Che linguaggio di merda.

È stato il mio primo linguaggio di programmazione. E lo ho sempre odiato :mrgreen: . Quindi non posso che sottoscrivere.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[10] Re: Script VBA per introdurre hyperlink

Messaggioda Foto Utentesoltec » 5 mar 2018, 19:53

Non so se può essere di aiuto ma io quando devo scrivere in vba se non conosco bene il codice faccio registra macro e poi modifico secondo esigenza.
Provare non nuoce.
Il problema dell'umanità è che gli stupidi sono strasicuri,mentre gli intelligenti sono pieni di dubbi
Avatar utente
Foto Utentesoltec
1.234 4 6
Expert
Expert
 
Messaggi: 673
Iscritto il: 9 lug 2007, 18:27
Località: Roma

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti