Condividi:        

Collegamento particolare

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 particolare

Postdi erryrox » 24/05/12 10:13

Salve a tutti, ecco il mio nuovo problema:

Ho una cartella di lavoro con diversi fogli.
In un foglio dovrei inserire, all'interno di una cella, un link che mi mandi ad un altro foglio della stessa cartella di lavoro.
Con la funzione "collegamento ipertestuale" si può fare???

P.S. Il link al foglio deve cambiare a seconda del contenuto di un altra cella, ma tramite la funzione "se" si può fare facilmente.

grazie
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Sponsor
 

Re: Collegamento particolare

Postdi Flash30005 » 24/05/12 12:32

Apri una nuova cartella con 3 fogli (foglio1, foglio2, foglio3)
in un modulo inserisci questa macro (intera, con dichiarazione Public)
Codice: Seleziona tutto
Public NomeF As String
Sub AttivaF()
Sheets(NomeF).Select
End Sub

Nel foglio1 inserisci in
A2 "Foglio2"
A3 "Foglio3"
ora nel Vba del foglio1 inserisci questo codice
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("A" & Rows.Count).End(xlUp).Row
CheckAreaA = "A2:A" & UR
If Not Application.Intersect(ActiveCell, Range(CheckAreaA)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    NomeF = Target
    AttivaF
End If
End Sub


In questa maniera non occorrono gli Iperlink ma ogni volta che selezioni una cella in colonna "A" che riporta un nome foglio
verrà attivato il foglio corrispondente
Scarica questo File-Test
poi lo adatti

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Collegamento particolare

Postdi erryrox » 24/05/12 12:56

grazie mille per la tempestiva risposta! come soluzione è ottima ma non riesco a farla funzionare.
Per la precisione quando clicco su una cella della colonna A, mi da errore "indice non incluso nell'intervallo" e se faccio il debug mi segnala la riga : Sheets(NomeF).Select

dove sbaglio????
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Collegamento particolare

Postdi Flash30005 » 24/05/12 13:10

Ma stai usando il mio file?
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Collegamento particolare

Postdi erryrox » 24/05/12 13:26

no flash, perchè dall'ufficio non riesco a scaricarlo (è tutto bloccato dai proxy) . Però ho ricopiato tutte le istruzioni e mi da quell'errore!
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Collegamento particolare

Postdi Flash30005 » 24/05/12 15:21

erryrox ha scritto:Però ho ricopiato tutte le istruzioni e mi da quell'errore!

Però hai eseguito male le istruzioni
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Collegamento particolare

Postdi erryrox » 25/05/12 07:52

Flash, ho scaricato il tuo test e funziona. Ho provato a ricopiarlo in una cartella nuova e funziona.
Vado ad adattarlo al mio caso e non funziona. Solito errore detto sopra.
L'unica cosa che devo cambiare è la colonna ("AU"):

Riporto i codici modificati da me:
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("AU" & Rows.Count).End(xlUp).Row
CheckAreaA = "AU4:AU" & UR     [color=#FF0000]'4 è la riga da dove parte l'elenco??[/color]If Not Application.Intersect(ActiveCell, Range(CheckAreaA)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    NomeF = Target
    AttivaF
End If
End Sub


Sapete dirmi dove sbaglio???
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Collegamento particolare

Postdi wallace&gromit » 25/05/12 08:02

Prova a "pulirlo" così:
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("AU" & Rows.Count).End(xlUp).Row
CheckAreaA = "AU4:AU" & UR   
If Not Application.Intersect(ActiveCell, Range(CheckAreaA)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    NomeF = Target
    AttivaF
End If
nel tuo codice c'era un riferimento a dei colori(?) e l'istruzione If Not era sulla riga sbagliata
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Collegamento particolare

Postdi erryrox » 25/05/12 08:05

Ho trovato l'errore: ho inserito il codice (da mettere nel modulo) in un modulo nuovo. Prima l'avevo inserito in un modulo dove c'erano altri codici e probabilmente andava in conflitto.

Ora chiedo, c'è un modo per evitare che se clicco su una cella che è vuota o che contiene un testo che non è un nome di un foglio mi esce l'errore???
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Collegamento particolare

Postdi wallace&gromit » 25/05/12 08:24

probabilmente le nostre risposte si sono incrociate: il problema che descrivi è dovuto alla cattiva compilazione dell'istruzione If not....
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Collegamento particolare

Postdi Flash30005 » 25/05/12 08:43

Mi sembra strano che un elenco incolonnato abbia delle celle vuote tra una riga e l'altra
comunque devi aggiungere solo una condizione dove indicato (ho inserito una seconda riga di controllo per UR)
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("AU" & Rows.Count).End(xlUp).Row
If UR < 4 then exit sub   '<<<< questa serve a non attivare la macro nel caso in cui non esista alcun elenco
CheckAreaA = "AU4:AU" & UR   
If Not Application.Intersect(ActiveCell, Range(CheckAreaA)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Or Target = "" Then Exit Sub   '<<<<< Or target = ""
    NomeF = Target
    AttivaF
End If
End Sub


Sostituisci la macro nel Vba del foglio dati (non modulo)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Collegamento particolare

Postdi erryrox » 25/05/12 14:48

perfetto, funziona tutto alla grande!

Grazie mille per il vostro aiuto!
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31


Torna a Applicazioni Office Windows


Topic correlati a "Collegamento particolare":


Chi c’è in linea

Visitano il forum: Nessuno e 58 ospiti