Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

impedire cambio foglio

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

impedire cambio foglio

Postdi matzap » 03/09/13 14:41

Ciao,
ho un foglio nascosto che rendo visibile tramite un tasto.

una volta che è stato reso visibile, vorrei impedire all'utente di cambiare foglio se prima non lo ha nuovamente nascosto.

c'è una funzione in proposito?
ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: impedire cambio foglio

Postdi scossa » 03/09/13 15:17

matzap ha scritto:Ciao,
ho un foglio nascosto che rendo visibile tramite un tasto.

una volta che è stato reso visibile, vorrei impedire all'utente di cambiare foglio se prima non lo ha nuovamente nascosto.

c'è una funzione in proposito?
ciao


Nel modulo di classe di quel foglio metti questo codice:
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
  If Me.Visible = xlSheetVisible Then Me.Activate
End Sub
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: impedire cambio foglio

Postdi matzap » 03/09/13 15:41

grazie!
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi Anthony47 » 03/09/13 16:16

Pero' invece di costringere l' utente a nascondere il foglio e controllare che l' ha fatto, tanto vale che scrivi tu una macro di Worksheet_Deactivate che nasconda il foglio; cioe':
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
Me.Visible = False
End Sub


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 04/09/13 08:38

ciao Anthony,
infatti ho fatto così.
ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi matzap » 13/09/13 15:02

Ciao,
voledo complicare le cose e cioè impedire il cambio foglio quando apro solo il foglioX, e permetterlo quando invece apro anche il foglioY.

mi spiego meglio:
una macro ( macro di lavoro) mi apre il foglioX e devo impedire che si possa cambiare foglio.
un'altra macro ( macro di manutenzione) invece mi apre il foglioX e il foglioY e in questo caso devo poter cambiare foglio, non solo su questi ma su tutti.

come modifico la macro del FoglioX:
Private Sub Worksheet_Deactivate()
If Me.Visible = xlSheetVisible Then Me.Activate
End Sub

ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi ricky53 » 13/09/13 23:10

Ciao,
io utilizzerei un foglio "Menu" contenente dei pulsanti:
con click sul pulsante1 si fa lavorare gli utenti sul foglio1 e tutti gli altri fogli sono nascosti
con click sul pulsante2 si fa lavorare gli utenti sul foglio2 e tutti gli altri fogli sono nascosti
....
con click sul pulsanteA si fa lavorare gli utenti su tutti i fogli
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: impedire cambio foglio

Postdi Anthony47 » 13/09/13 23:54

Io rimango sulla macro di Worksheet_Deactivate:
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
If Sheets("Y").Visible=False then Me.Visible = False
End Sub

Guarda anche il suggerimento di Ricky, sopra.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 16/09/13 10:53

Ciao Ricky,
in effetti io già faccio così ma con una differenza:
il pulsante 1 apre il foglioX e mi fa lavorare solo là
il pulsante 2 apre altri fogli compreso il foglioX e dovrebbe farmi lavorare su tutti i fogli, invece si posiziona sul foglio 1 e non mi fa cambiare.

Anthony,
ho provato cosi come da te suggerito

Private Sub Worksheet_Deactivate() ' inserita ne FoglioX
If Me.Visible = xlSheetVisible Then Me.Activate ' Me è il foglioX
If Sheets("Y").Visible = False Then Me.Visible = False
End Sub
ma non funziona rimane bloccata.


anche separando le macro non cambia nulla:

Private Sub Worksheet_Deactivate()
If Me.Visible = xlSheetVisible Then Me.Activate
End Sub
-----------------------------------------------------------------------------
Private Sub Worksheet_Deactivate2()
If Sheets("RICERCA TT").Visible = False Then Me.Visible = False
End Sub


ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi ricky53 » 16/09/13 11:43

Ciao,
invia le ultime macro che stai utilizzando e proviamo insieme
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: impedire cambio foglio

Postdi matzap » 16/09/13 13:36

ciao,
ho pubblicato un file di prova con testi e macro che sto usando:

http://rapidshare.com/share/4F70337C0F7 ... 7A2115C116
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi Anthony47 » 16/09/13 14:22

La macro che avevo proposto era diversa...
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
If Sheets("Y").Visible=False then Me.Visible = False
End Sub
Da inserire sul modulo di codice del foglio "X", da cui vuoi permettere la deattivazione senza che il foglio venga nascosto quando il foglio "Y" e' visualizzato.
Ricorda che io avevo suggerito di cambiare logica:
-NON impedire all' utente di cambiare foglio se prima non ha nascosto il foglio su cui si trovava
-MA quando l' utente deattiva il foglio allora il foglio viene nascosto
In questa ottica, la nuova Sub Worksheet_Deactivate (quella di sopra) nasconde quel famoso foglio solo se il foglio Y non e' visibile.

Tieni anche presente che non puoi avere due macro di Worksheet_Deactivate.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 16/09/13 16:19

Anthony, scusami ma mi sto perdendo :cry:
mi dici
NON impedire all' utente di cambiare foglio se prima non ha nascosto il foglio su cui si trovava
ma io vorrei l'esatto contrario:
nell'esempio il tasto "apri foglio" deve aprire solo il foglio4 e impedire di cambiare foglio se prima non l'ho nuovamente nascosto--> tasto "nascondi fogli"

il tasto "apri tutti i fogli" deve aprire tutti i fogli nascosti e mi deve permettere di passare da uno all'altro.
Se nel foglio4 scrivo:

Private Sub Worksheet_Deactivate()
If Sheets("Foglio5").Visible = False Then Me.Visible = False
End Sub
in entrambi i casi, Foglio5 visibile o nascosto posso muovermi su tutti i fogli :(
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi Anthony47 » 17/09/13 01:46

Anthony, scusami ma mi sto perdendo :cry:
mi dici
NON impedire all' utente di cambiare foglio se prima non ha nascosto il foglio su cui si trovava
ma io vorrei l'esatto contrario:
nell'esempio il tasto "apri foglio" deve aprire solo il foglio4 e impedire di cambiare foglio se prima non l'ho nuovamente nascosto--> tasto "nascondi fogli"

La riga che hai quotato e' parte di una frase che va letta tutta insieme, e che qui ripeto:
Ricorda che io avevo suggerito di cambiare logica:
-NON impedire all' utente di cambiare foglio se prima non ha nascosto il foglio su cui si trovava
-MA quando l' utente deattiva il foglio allora il foglio viene nascosto

Voglio solo ricordarti, cioe', che il mio suggerimento esegue nella sostanza la tua richiesta ma con una logica diversa (non "controllare" e se la cosa non va bene sgridare l' utente, ma "controllare" e se l' utente non ha fatto una cosa farla nella stessa macro).

La cosa l' avevi condivisa, tanto che avevi scritto
ciao Anthony,
infatti ho fatto così.


Nella nuova richiesta ("voledo complicare le cose e cioè impedire il cambio foglio quando apro solo il foglioX, e permetterlo quando invece apro anche il foglioY") la mia proposta e' di continuare con la stessa logica; da qui la nuova macro Worksheet_Deactivate:
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
If Sheets("Y").Visible=False then Me.Visible = False
End Sub


La tua macro
Codice: Seleziona tutto
Private Sub Worksheet_Deactivate()
If Sheets("Foglio5").Visible = False Then Me.Visible = False
End Sub

e' l' esatta trasposizione della mia, ed e' l' esatta implementazione della tua richiesta:
"voledo complicare le cose e cioè impedire il cambio foglio quando apro solo il foglioX, e permetterlo quando invece apro anche il foglioY"
Se X=Foglio4 e Y=Foglio5, se Foglio5 e' visibile allora posso muovermi tra tutti i fogli; se invece Foglio5 e' nascosto allora Foglio4 viene nascosto (che e' l' equivalente della tua richiesta di impedirgli di abbandonare Foglio4 senza prima averlo nascosto).
In realta' pero' tu vuoi realizzare forse un' altra logica: e cioe' (sempre "forse") in alcune circostanze tornare sempre sul foglio Menu, in altre potersi muovere tra i fogli aperti.

In prima battuta direi che all' attivazione del foglio Menu dovresti nascondere tutti gli altri fogli (quindi in una macro di Worksheet_Activate da posizionare sul foglio di codice di Menu); suggerisco tuttavia un supplemento di analisi: solo chiarendo bene tutte le cose che vanno fatte si potra' delineare un modo per attuare tutto cio' al meglio.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 17/09/13 08:11

Buongiorno Anthony,
scusami ma io continuo a non capire....
mi dici:
Se X=Foglio4 e Y=Foglio5, se Foglio5 e' visibile allora posso muovermi tra tutti i fogli; e va bene ,
se invece Foglio5 e' nascosto allora Foglio4 viene nascosto[/b], ed è qui che mi perdo.... :(
la macro inserita nel Foglio4:
Private Sub Worksheet_Deactivate()
If Sheets("Foglio5").Visible = False Then Me.Visible = False
End Sub
non fa quello che chiedo.
infatti:
se vedo solo Foglio4 vado ovunque;
se Foglio5 è visibile vado ovunque, e se nascondo Foglio5, vado ovunque e poi dopo qualche passaggio tra un foglio e l'altro mi nasconde il Foglio4.

quello che vorrei riassumendo è:
caso 1: Foglio4 visibile, Foglio5 nascosto---> bloccato a lavorare su Foglio4;
caso 2 : Foglio4 visibile, Foglio5 visibile---> poter lavorare su tutti i fogli;
il caso 1 serve all'utente finale per poter in alcune circostanze di effettuare alcune operazioni;
il caso 2 serve all'amministratore del programma per modifiche e controlli.
perciò l'utente finale può:
1) vedere solo il foglio "menu", richiamare il Foglio4 e rimanere bloccato su Foglio4;
2) chiudere Foglio4 e tornare su menu.

l'amministratore può:
dal foglio "menu" scoprire tutti i fogli e muoversi dove vuole.

forse ora è più chiaro quello che cerco di fare... spero. :D

grazie per l'aiuto e la pazienza!
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi Anthony47 » 17/09/13 09:18

[. . . ]
perciò l'utente finale può:
1) vedere solo il foglio "menu", richiamare il Foglio4 e rimanere bloccato su Foglio4;
2) chiudere Foglio4 e tornare su menu.

Con quello che (dall' inizio) ti ho proposto, l' utente non viene (in questo caso) confinato obbligatoriamente su Foglio4, pero' se esce da quel foglio allora Foglio4 viene nascosto dalla macro.

se Foglio5 è visibile vado ovunque, e se nascondo Foglio5, vado ovunque e poi dopo qualche passaggio tra un foglio e l'altro mi nasconde il Foglio4
Immagino che quel vago "dopo qualche passaggio tra un foglio e l'altro mi nasconde Foglio4" debba leggersi "solo quando torno su Foglio4 e poi ne esco mi nasconde Foglio4".

Tu stai dicendo, quindi:
-l' utente e' su Foglio4
-Foglio5 e altri fogli sono visibili
-l' utente si muove liberamente tra i fogli visibili, e questo ti torna
-l' utente nasconde Foglio5, ma puo' liberamente muoversi ancora tra tutti i fogli visibili, solo se torna su Foglio4 e ne esce allora Foglio4 viene nascosto, lasciando comunque visibili eventuali altri fogli diversi da Menu; e questo non ti piace

E che cosa vorresti che succedesse quando Foglio5 viene nascosto?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 17/09/13 11:41

-l' utente e' su Foglio4 :)
-Foglio5 e altri fogli sono visibili :)
-l' utente si muove liberamente tra i fogli visibili, e questo ti torna :D

Questo lo fa l'ammnistratore. che al termine tramite il tasto " Nascondi fogli" del Foglio4 nasconde i Fogli4-5-6

-l' utente nasconde Foglio5, ma puo' liberamente muoversi ancora tra tutti i fogli visibili, solo se torna su Foglio4 e ne esce allora Foglio4 viene nascosto, lasciando comunque visibili eventuali altri fogli diversi da Menu; e questo non ti piace :evil:

L'utente normale non ha accesso al Foglio5 ma solo al Foglio4 tramite il tasto "apri foglio4". una volta aperto il Foglio4 deve rimanere bloccato li a meno di premere il tasto "nascondi foglio" che questa volta nasconderà solo Foglio4.

Dai che quasi ci siamo! :eeh:
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi Anthony47 » 17/09/13 12:01

Ci saremmo da vari messaggi se tu fossi coerente nelle richieste.

Qualche giorno fa matzap ha scritto:mi spiego meglio:
una macro ( macro di lavoro) mi apre il foglioX e devo impedire che si possa cambiare foglio.
un'altra macro ( macro di manutenzione) invece mi apre il foglioX e il foglioY e in questo caso devo poter cambiare foglio, non solo su questi ma su tutti.

Oggi invece matzap ha scritto:L'utente normale non ha accesso al Foglio5 ma solo al Foglio4 tramite il tasto "apri foglio4". una volta aperto il Foglio4 deve rimanere bloccato li a meno di premere il tasto "nascondi foglio" che questa volta nasconderà solo Foglio4.

A questo punto rimango sulla mia opinione di "ieri sera tardi": "suggerisco [. . ] un supplemento di analisi: solo chiarendo bene tutte le cose che vanno fatte si potra' delineare un modo per attuare tutto cio' al meglio"

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: impedire cambio foglio

Postdi matzap » 17/09/13 12:38

una macro ( macro di lavoro) mi apre il foglioX e devo impedire che si possa cambiare foglio.
vuol dire:
L'utente normale non ha accesso al Foglio5 ma solo al Foglio4 tramite il tasto "apri foglio4". una volta aperto il Foglio4 deve rimanere bloccato li a meno di premere il tasto "nascondi foglio" che questa volta nasconderà solo Foglio4.

un'altra macro ( macro di manutenzione) invece mi apre il foglioX e il foglioY e in questo caso devo poter cambiare foglio, non solo su questi ma su tutti.

vuol dire:
-Foglio5 e altri fogli sono visibili
-l' utente si muove liberamente tra i fogli visibili,

io non vedo incongruenze: due modi di dire la stessa cosa.
comunque data la mia inesperienza avrò sicuramente fatto un pò di confusione.

il file che ho postato però ha due tasti sul foglio menu: "apri foglio4" e "apri tutti i fogli".
un tasto "nascondi fogli" sul foglio4

se "apro foglio4" devo essere bloccato su Foglio4
se "apri tutti i fogli" devo essere libero.
in entrambi i casi il tasto "nascondi fogli" nasconde nuovamente tutto

ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: impedire cambio foglio

Postdi ricky53 » 17/09/13 12:48

Ciao,
condivido in pieno quanto chiesto da Anthony e sono dell'avviso che un'analisi chiara ci porterà al risultato.

Io espongo quello che ho capito dando anche la mia interpretazione:
1. al file accedo due tipologie di utenti
2. un utente ha tutti i privilegi
3. un altro utente può lavorare solo su un foglio ma va stabilito quali altri fogli può vedere ma non li può modificare

Per fare questo io:
a) userei un foglio di nome "Menu",
b) all'apertura del file sarà visibile solo il foglio "menu", in questo foglio chiederei il nome utente e password
b) in base al nome utente renderei visibili ed aggiornabili solo fogli specifici per il profilo dell'utente (l'amministratore può vedere e modificare tutto)
c) alla chiusura del file nasconderei tutti i fogli lasciando visibile solo il foglio "menu"

Questo a garanzia dell'integrità dei dati.
La Password è solo di aiuto ma non per bloccare gli utenti perchè, in excel, è facilmente violabile

Ci risentiamo.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "impedire cambio foglio":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti