| | Post: 26 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
31/01/2017 18:31 | |
Collegamento ipertestuale Ciao Ragazzi,
Sto lavorando a un progetto e ho bisogno di voi.
Ho una serie di celle in cui mi serve che qualora queste siano vuote, non si faccia niente.
Se però contengono una "x" tale x deve essere un collegamento ipertestuale.
Ho provato con =Se(cella="";"";collegament.ipertes("C:etc";)).
Però dice che c'è un problema do riferimento cella, insomma tale formula vale se è inerente ad una cella diversa da quella in cui scrivo la formula.
È possibile trovare una soluzione? Grazie |
|
| | Post: 26 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
31/01/2017 22:47 | |
Nessuno sa come potrei risolvere?
Grazie in anticipo |
| | Post: 2.700 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
31/01/2017 22:56 | |
Ciao
Confesso di non aver capito molto.
Puoi allegare un file di esempio spiegando meglio?
Alfredo |
| | Post: 27 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
31/01/2017 23:07 | |
Si, ammetto di essermi espresso male.
Domani posterò il file da pc, comunque, in breve mi serve che in una cella sia presente un collegamento ipertestuale solo se questa contiene un certo valore ( nel mio caso la "X") |
| | Post: 28 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
01/02/2017 21:00 | |
Ho predisposto un file di esempio. Nella cella E4 ho inserito la formula che vorrei utilizzare, però, mi da errore di riferimento cella.
Le allego il link da cui poter scaricare il file.
https://www.dropbox.com/s/ccabvse9icxw2mx/esempio.xlsx?dl=0
grazie per l'aiuto |
| | Post: 29 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
03/02/2017 16:15 | |
Proprio nessuno sa come posso risolvere? |
| | Post: 476 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
03/02/2017 19:56 | |
Ciao a tutti,
@gionox
come prima cosa... NON puoi controllare se la cella E4 è vuota mettendo la formula nella stessa cella E4 (riferimento circolare), dopo è normale che se cancelli il contenuto della cella cancellerai anche la formula!
Quindi ti consiglio di passare al VBA.
Nel modulo di classe del foglio "Foglio1" puoi usare il seguente codice:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Indirizzo As String
If Not Intersect(Target, Range("E4:N4")) Is Nothing Then
If UCase(Target.Value) = "X" Then
Indirizzo = "http://www.mondofilm.it/wp-content/uploads/2017/01/Oscar2017.jpg"
Target.Hyperlinks.Add Anchor:=Target, Address:=Indirizzo, ScreenTip:="Oscar 2017"
End If
End If
End Sub
Come indirizzo ho messo una foto degli Oscar 2017, tu cambialo a tuo piacimento.
Ti riallego il file... [Modificato da cromagno 03/02/2017 20:00]
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 30 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
04/02/2017 20:03 | |
Ciao, grazie dell'aiuto.
il tuo file in realtà non sono riuscito ad aprirlo, però ho copiato il codice e funziona benissimo!
C'è un modo per farlo valere per tutti i fogli presenti nel file o lo incollo in ogni foglio? |
| | Post: 479 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
04/02/2017 20:10 | |
gionox, 04/02/2017 20.03:
Ciao, grazie dell'aiuto.
il tuo file in realtà non sono riuscito ad aprirlo, però ho copiato il codice e funziona benissimo!
C'è un modo per farlo valere per tutti i fogli presenti nel file o lo incollo in ogni foglio?
Ciao,
per farlo valare per tutti i fogli (naturalmente il range di azione deve essere lo stesso... intendo le celle in cui metti la "X"), il corpo del codice lo devi mettere nel modulo di classe di "Questa cartella di lavoro" invece che nel modulo di classe del Foglio, ed al posto di associarlo all'evento "Worksheet_Change" lo assocerai all'evento "Workbook_SheetChange"....
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Indirizzo As String
If Not Intersect(Target, Range("E4:N4")) Is Nothing Then
If UCase(Target.Value) = "X" Then
Indirizzo = "http://www.mondofilm.it/wp-content/uploads/2017/01/Oscar2017.jpg"
Target.Hyperlinks.Add Anchor:=Target, Address:=Indirizzo, ScreenTip:="Oscar 2017"
End If
End If
End Sub
non posso provare al momento ma dovrebbe funzionare...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 31 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
04/02/2017 20:15 | |
perfetto, funziona! graziee |
| | Post: 319 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
06/02/2017 09:54 | |
Una piccola aggiunta all'ottimo lavoro di cromagno (ciao Tore).
Il seguente codice "simula" il clic sinistro del mouse sulla cella dove è stata inserita la X (cambia anche la X con la stringa relativa).
In un Modulo Standard
Option Explicit
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Type POINTAPI
x As Long
y As Long
End Type
Sub SimulClic()
Dim Pos As POINTAPI
GetCursorPos Pos
'Mi dice la posizione del puntatore.
'MsgBox "Distanza Sinistra: " & Pos.x & " " & "Distanza dal Bordo superiore: " & Pos.y
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
Nel Modulo di Classe del Foglio interessato (o dei Fogli)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Indirizzo As String
Dim Pos As POINTAPI
If Not Intersect(Target, Range("E4:N4")) Is Nothing Then
If UCase(Target.Value) = "X" Then
Indirizzo = "http://www.mondofilm.it/wp-content/uploads/2017/01/Oscar2017.jpg"
Target.Hyperlinks.Add Anchor:=Target, Address:=Indirizzo, ScreenTip:="Oscar 2017", TextToDisplay:="Oscar 2017"
SimulClic
End If
End If
End Sub
Prova e fai sapere. Ciao,
Mario |
| | Post: 489 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
06/02/2017 10:08 | |
Ciao Mario,
vedo che ti sei sbizzarrito
Mi permetto solo una piccola modifica per le Private Function/Sub (l'ho notato perchè uso la versione 64 bit)...
#If VBA7 Then
Public Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare PtrSafe Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
#Else
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
#End If
Ciao e complimenti
io non sono tanto pratico di API...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
| | Post: 320 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
06/02/2017 10:30 | |
@cromagno
Ciao Tore
neanch'io sono molto pratico di API ma queste erano abbastanza facili.
Ottima la correzione.
Ciao,
Mario |
| | Post: 34 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
06/02/2017 11:47 | |
Ciao ringrazio entrambi.
Sottolineo che il primo lavoro svolto da Cromagno adempie perfettamente alla richiesta.
Volendo utilizzare il lavoro di Marius non ho ben capito dove incollare il codice....In cartella di lavoro e sul singolo foglio?
Grazie |
| | Post: 35 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
06/02/2017 14:56 | |
Ho provato ad incollare il codice nel foglio prova che ho allegato, ma sicuro sbaglio perchè escono continui errori..
Grazie |
| | Post: 321 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
06/02/2017 14:58 | |
Ciao
come ti ho scritto immediatamente prima di ogni codice il primo va su un Modulo Standard (al Foglio Excel ==> Alt + F11 ==> Inserisci ==> Modulo) ed il secondo nello stesso Foglio dove hai messo quello di cromagno (ma, ovviamente, devi togliere quello di prima).
Apporta le correzioni suggerite da cromagno.
Ciao,
Mario |
| | Post: 36 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
06/02/2017 15:07 | |
Ciao, ho seguito i tuoi passaggi (e ho apportato le modifiche suggerite da Cromagno), però nel momento in cui digito la "x" mi esce: "variabile non definita".
|
| | Post: 322 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
06/02/2017 15:14 | |
Ciao
In quale punto del codice si blocca?
Ciao,
Mario |
| | Post: 323 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
06/02/2017 15:19 | |
Ciao
Provo ad allegarti il file sul quale ho lavorato io.
Ciao,
Mario |
| | Post: 37 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
11/02/2017 19:01 | |
Ciao, premetto che ho optato per la soluzione di Cromagno, in quanto risponde meglio alle mie esigenze.
Però sono sorti due problemi:
1) se taglio un intervallo di celle in cui ho inserito le "x" e le incollo in un altra zona, appare l'errore: "Errore run time '13'. Tipo non corrispondente (Fine o Debug) [se l'operazione la copia per una singola cella, il problema non sussiste)
2) inoltre, siccome adesso mi interessa che ogni mese, le x presenti in un intervallo vengano spostate in un altro e il primo intervallo resti vuoti. Ho pensato di utilizzare un macro per questo, però, se faccio Taglia e Incolla, vengono tagliati anche i bordi della tabella però io voglio che rimangano. Come posso procede per evitare ciò?
Grazie |
| | Post: 38 | Registrato il: 12/04/2013
| Città: BARI | Età: 34 | Utente Junior | 2016 | | OFFLINE | |
|
11/02/2017 19:08 | |
Questo è il codice presente nel modulo "Questa cartella di lavoro"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Indirizzo As String
If Not Intersect(Target, Range("B5:AW71")) Is Nothing Then
If UCase(Target.Value) = "X" Then
Indirizzo = "E:\tirocinio\Rapportini\Rapportini_2017.xlsx"
Target.Hyperlinks.Add Anchor:=Target, Address:=Indirizzo, ScreenTip:="Rapportini 2017"
End If
End If
End Sub
[Modificato da gionox 12/02/2017 11:28] |
|
|