Condividi:        

spostarsi da una pagina a l'altra

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

spostarsi da una pagina a l'altra

Postdi martin » 15/01/09 12:46

salve Anthony.
ti chiedo altra cortesia:
ho 200 pagine da consultare vorrei un comando da inserire su ogni pagina per
spostarmi avanti e indietro.
avevo risolto con collegamento ipertestuale
del tipo vai a p1 ... vai ap2...ma sono 200 pagine e si devono fare tutte a 1 a 1 .
vorrei o una macro che mi faccia il lavoro in automatico per tutte le pagine.
o se esiste un comando da inserire in una cella e dando invio si vada alla pag successiva.
del tipo
Foglio successivo, CTRL+Pagina Giù.
Foglio precedente, CTRL+Pagina Su.
mi dirai puoi farlo a mano con i comandi su citati, ma io invece vorrei inserirlo nel riquadro come comando nel mio programmino.
ciao martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Sponsor
 

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 15/01/09 16:09

Queste due macro?
Codice: Seleziona tutto
Sub Avanti()
If ActiveSheet.Index = ActiveWorkbook.Worksheets.Count Then Exit Sub
ActiveSheet.Next.Activate
End Sub

Sub Indietro()
If ActiveSheet.Index = 1 Then Exit Sub
ActiveSheet.Previous.Activate
End Sub


Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: spostarsi da una pagina a l'altra

Postdi martin » 15/01/09 18:21

ok fatto tutto ok con macro.

però ti chiedevo se era possibile trovare altro metodo senza macro
in quanto il programma va con " no macro"

utilizzerei macro solo per programmare
poi dovrebbe funzionare senza

ciao cmq grazie
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 15/01/09 23:31

ho 200 pagine da consultare vorrei un comando da inserire su ogni pagina per
spostarmi avanti e indietro.[...]
vorrei o una macro che mi faccia il lavoro in automatico per tutte le pagine. o [...]
Mi sembrava che la macro era una delle opzioni...

Comunque, con questa macro metti su ogni foglio, in posizione programmabile (vedi le istruzioni marcate <<<), un hyperlink al Prossimo e al Precedente foglio:
Codice: Seleziona tutto
Sub SettaLink()
'
NAdd = "Q1"       '<<< Aggiustare a piacere; posizione del link "Next"
PAdd = "Q30"      '<<< Aggiustare a piacere; posizione del link "Previous"
'
PrLink = "'" & Sheets(1).Name & "'!" & PAdd
For I = 1 To ActiveWorkbook.Worksheets.Count
Sheets(I).Select
If ActiveSheet.Index < ActiveWorkbook.Worksheets.Count Then _
     NxLink = "'" & Activesheet.Next.Name & "'!" & NAdd
If ActiveSheet.Index > 1 Then PrLink = ActiveSheet.Previous.Name & "!" & PAdd
Range(NAdd).Select
ActiveCell.Value = "Next ->"
ActiveSheet.Hyperlinks.add Anchor:=Selection, Address:="", SubAddress:= _
  NxLink, TextToDisplay:="NEXT"
Range(PAdd).Select
ActiveCell.Value = "<- PREC"
ActiveSheet.Hyperlinks.add Anchor:=Selection, Address:="", SubAddress:= _
  PrLink, TextToDisplay:="Prec"
Next I
End Sub


Con questa li puoi togliere, se cambi idea:
Codice: Seleziona tutto
Sub NoLinks()
NAdd = "Q1"      '<<< Aggiustare a piacere, come Settalink
PAdd = "Q30"     '<<< Aggiustare a piacere, come Settalink
'
For I = 1 To ActiveWorkbook.Worksheets.Count
 Sheets(I).Select
 Range(NAdd).select: Selection.Clear
 Range(PAdd).select: Selection.Clear
Next I
End Sub


Vedi se ti vanno bene.
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: spostarsi da una pagina a l'altra

Postdi martin » 16/01/09 04:29

ok era quello che volevo
perfettissimo.

però piccolo problema : devo bloccare le celle e "next" &"prev" con le celle bloccate non vanno.
allora pensavo mi puoi dare la formula da aggiungere per inserire 2 pulsanti semplici . avanti e indietro ?

grazie sempre
ciao martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 16/01/09 14:53

Due "pulsanti semplici" li devi poi accoppiare con le macro, che non vuoi; e poi mettere i pulsanti in fogli protetti non e' diverso che mettere degli Hyperlink.
Durante il ciclo della macro Settalink dovrai quindi sproteggere e riproteggere i fogli appena selezionati, all' interno del ciclo For /Next.
Le istruzioni per sproteggere e proteggere sono del tipo
Codice: Seleziona tutto
ActiveSheet.Unprotect Password:="PasswordSegreta"
ActiveSheet.Protect Password:="PasswordSegreta"

Per quanto riguarda la scritta (Next e Prec), puoi inserire la scritta che vuoi, componendo con alfabeti quali webdings e simili anche pittogammi piu' o meno validi.

Fai sapere se cosi' risolvi.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: spostarsi da una pagina a l'altra

Postdi martin » 16/01/09 15:39

no non va.
inserito blocca e sblocca su macro ma se protetta la cella il collegamento non va.
io nel sistema manuale avevo messo delle forme a forma di freccia con il collegamento ipertestuale.
praticamente tu hai fatto lo stesso solo che il collegamento ansi che dentro la cella dovrebbe essere dentro la forma
infatti se inserisco una forma con una freccia e poi scrivo il collegamento funziona anche se poi la cella è bloccata.

il problema adesso sta che se si clicca ivolontariamente due volte si cancella il collegamento
e non mi sta bene.
cio che mi serve adesso è:
sistemare delle frecce o simboli "av e ind" poi su questi con una macro specifica copiarli in tutte le pagine con i collegamenti
ciao
alla prossima
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 17/01/09 00:55

Probabilmente hai protetto il foglio con divieto di selezionare celle protette...
Comunque se vuoi usare delle forme procedi in questo modo:
1) Sul primo foglio (quello col tab del nome piu' a sx) disegnati le frecce o altra forma che preferisci; dagli forma e colore e testo che preferisci e mettile dove preferisci, ma non assegnar loro nessun hyperlink
2) Una la chiami NextArr (freccia avanti) e l' altra BackArr (all' indietro): selezioni la forma; nella "casella nome" (in genere e' a sx della barra della formula) vedrai il nome attuale (probabilmente qualcosa come "Forma 1"), cliccaci dentro e scrivi il nuovo nome (chiudi con Enter)
3) poi inserisci questa macro per replicare le forme da foglio2 (o come si chiama) in avanti, assegnando nel contempo un link al foglio successivo.
Codice: Seleziona tutto
Sub FormaLink()
'
NAdd = "Q1"       '<<< Aggiustare a piacere
PAdd = "Q30"      '<<< Aggiustare a piacere
LAdd = "A1"       '<<< Cella sprotetta a cui puntare l' hyperlink
'
PrLink = "'" & Sheets(1).Name & "'!" & LAdd
For I = 2 To ActiveWorkbook.Worksheets.Count
Sheets(I).Select
ActiveSheet.Unprotect Password:="PasswordSegreta"     '<<< Tua password
If ActiveSheet.Index < ActiveWorkbook.Worksheets.Count Then _
     NxLink = "'" & ActiveSheet.Next.Name & "'!" & LAdd
If ActiveSheet.Index > 1 Then PrLink = ActiveSheet.Previous.Name & "!" & LAdd
Sheets(1).Shapes("NextArr").Copy
Range(NAdd).Select
ActiveSheet.Paste
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:= _
        "", SubAddress:=NxLink
'Range(NAdd).Select
'
Sheets(1).Shapes("BackArr").Copy
Range(PAdd).Select
ActiveSheet.Paste
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:= _
        "", SubAddress:=PrLink
Range(PAdd).Select
ActiveSheet.Protect Password:="PasswordSegreta"     '<<<Tua password
Next I
End Sub


4) Infine assegni manualmente l' hyperlink alle forme di foglio1

I primi tre parametri (vedi <<<) indicano la posizione in cui saranno messe le forme e a quale cella puntera' l' hyperlink (deve essere una cella sprotetta).
CANCELLARE LE FORME e' un po' piu' laborioso che non cancellare le celle, quindi non ti do' una macro per farlo in caso di risultato non soddisfacente (ne' ti rimando a una delle poche ma esistenti discussioni in cui e' stato fatto); quindi e' OBBLIGATORIO fare piu' copie di BACKUP del file di partenza per ripristinarlo all' occorrenza.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: spostarsi da una pagina a l'altra

Postdi martin » 18/01/09 05:18

ok anthony
abbia.... scusa hai azzeccato bene
era proprio ciò che volevo
perfettttttttttttttoo
ciao grazie alle prossime

nb
per chi legge stesso problem occhio ultima macro manca ("'") questo segno
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 18/01/09 16:21

per chi legge stesso problem occhio ultima macro manca ("'") questo segno
Non farmi incrociare gli occhi, se spieghi dove e' l' errore lo correggo.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: spostarsi da una pagina a l'altra

Postdi martin » 20/01/09 02:47

(If ActiveSheet.Index > 1 Then PrLink = ActiveSheet.Previous.Name & "!" & PAdd)

If ActiveSheet.Index > 1 Then PrLink = "'" & ActiveSheet.Previous.Name & "'!" & PAdd

in entrambe le macro
Sub SettaLink() e Sub FormaLink()

scusa se non ti ho detto niente
mi piace capire e ci sono arrivato da me leggendo attentamente le macro
non ho avuto tempo per inviare la correzione . l'ho solo accennato in anteprima magari interessava a qualcuno.
ciao grazie sempre
martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: spostarsi da una pagina a l'altra

Postdi Anthony47 » 20/01/09 03:23

Grazie; hai ragione, quando i nomi dei fogli contengono spazi e' obbligatorio racchiudere la stringa tra virgolette semplici; quindi e' buona norma metterle sempre (le virgolette).
E' quello che fa la correzione di martin, con le parti aggiunte, che ingrandisco qui sotto:
If ActiveSheet.Index > 1 Then PrLink = "'" & ActiveSheet.Previous.Name & "'!" & PAdd

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "spostarsi da una pagina a l'altra":


Chi c’è in linea

Visitano il forum: Gianca532011 e 60 ospiti