Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ritornare alla page corrente (multip) dopo chiusura userform

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

Ritornare alla page corrente (multip) dopo chiusura userform

Postdi WCB » 14/08/19 09:46

Ciao a tutti,
ho bisogno del vostro aiuto e spero possiate darmi una mano.. Il titolo per esteso è "Ritornare alla page corrente (multipage) dopo chiusura userform".
In una userform è presente un multipagina, alla pagina 3 è presente un button che apre una seconda userform..in questa seconda userform è presente un button che copia i dati e chiude la stessa userform.
Quando clicco sul button e la seconda userform si chiude, mi fa ritornare alla pagina 0 (prima pagina del multipagina).
Io invece vorrei che nel momento in cui la seconda userform si chiude, questa mi ritorni alla pagina 3 (pagina in cui ho cliccato il button ed è uscita la seconda userform).
Come dovrei fare?
Grazie mille in anticipo della vostra disponibilità e buona continuazione ;)
Ultima modifica di WCB su 14/08/19 09:55, modificato 1 volte in totale.
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Sponsor
 

Re: Ritornare alla pagina corrente dopo chiusura userform

Postdi zsadist » 14/08/19 09:55

scusa, non posso provare in questo momento, ma non puoi usare il comando con cui vai alla pagina 3? (uso pochissimo i form, non ricordo i comandi)
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi WCB » 14/08/19 10:00

Ciao,
tu dici cliccare direttamente sulla linguetta?
Purtroppo non lo posso fare in quanto è presente un codice che, associato a un commandbutton per ogni pagina, se ci clicco mi fa andare alla pagina successiva bloccando quella precedente e viceversa..
Io vorrei proprio evitare di ritornare alla prima pagina, anche perchè ho paura che si perdano i dati che ho inserito precedentemente.
Lo so è una paura irrazionale, però....
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi alfrimpa » 14/08/19 10:02

Io ho fatto una prova e dopo aver lanciato la seconda userform ed averla chiusa sulla prima userform si rimane sulla page precedente (non la 0) quindi non capisco.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1194
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi WCB » 14/08/19 10:11

Ciao Alfredo,
quale codice hai utilizzato?
Praticamente le due righe finali del mio codice sono:
Codice: Seleziona tutto
End With
Me.Hide   <<<<<<<<<<<<<<<<<<<Userform2
UserForm1.MultiPage1.Value = 3  <<<<<pagina 3 dell'userform1
End Sub

Sicuro sto sbagliando qualcosa.. :aaah
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi zsadist » 14/08/19 10:16

WCB ha scritto:Ciao,
tu dici cliccare direttamente sulla linguetta?
Purtroppo non lo posso fare in quanto è presente un codice che, associato a un commandbutton per ogni pagina, se ci clicco mi fa andare alla pagina successiva bloccando quella precedente e viceversa..
Io vorrei proprio evitare di ritornare alla prima pagina, anche perchè ho paura che si perdano i dati che ho inserito precedentemente.
Lo so è una paura irrazionale, però....


no, non di cliccare, di usare il codice

comunque, in effetti mi sembra strano che ti ritorni alla prima scheda..

non è che hai usato, in uscita, un comando che richiama la prima form?
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 76
Iscritto il: 04/04/19 13:48

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi alfrimpa » 14/08/19 10:17

Io ho costruito due userform.

Sulla prima ho messo un controllo multipage con due pagine; sulla seconda ho messo un commandnutton che apre la seconda userform.

Su questa ho messo un commandbutton con il codice Me.Hide e torno alla prima userform avendo la seconda pagina attiva (ossia da dove ero partito).
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1194
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi WCB » 14/08/19 10:33

Ho costruito la userform così come si presenta nel mio file originale.
Nel file è presente il codice che blocca le altre pagine, di conseguenza, per andare avanti/indietro, dovrete cliccare solo sui button.
Grazie mille dell'aiuto :)
Link al file: https://we.tl/t-bNSFrlCdkn
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi Anthony47 » 14/08/19 14:34

Mah... a me "molte volte" alla chiusura di UserForm2 (comando Me.Hide) scatta la Sub UserForm_Activate di UserForm1 (che imposta il MultiPage come all'avvio).

Suggerisco di aggirare il comportamento con un flag apposito:
1) in Modulo1 aggiungi la dichiarazione di mLock e la Sub ClearLock:
Codice: Seleziona tutto
Public mLock As Boolean   'RIGOROSAMENTE in testa al modulo

Sub ClearLock()
mLock = False
End Sub

Sub mostra()             ' QUESTA ESISTE GIA'
UserForm1.Show
End Sub


2) Sul codice di chiusura della Userform2 setti mLock=True e scheduli il suo reset dopo pochi secondi:
Codice: Seleziona tutto
Private Sub CommandButton1_Click()
Application.OnTime Now + TimeSerial(0, 0, 3), "ClearLock"     '<<< AGGIUNTA
mLock = True                                                  '<<< AGGIUNTA
Me.Hide
UserForm1.Show
End Sub


3) Sulla UserForm_Activate di Userform1 controlli lo stato mLock per decidere se inizializzare o no il MultiPage:
Codice: Seleziona tutto
Private Sub UserForm_Activate()
If mLock = False Then
'Seguono i comandi esistenti:
    MultiPage1.Pages(0).Enabled = True
    MultiPage1.Pages(1).Enabled = False
    MultiPage1.Pages(2).Enabled = False
    MultiPage1.Pages(3).Enabled = False
End If
mLock = False
End Sub

Il risultato sara' che alla chiusura di UserForm2 mLock impedira' l'esecuzione dei comandi ora inseriti nella Sub UserForm_Activate

Magari qualcun altro trova il modo di bloccare all'origine l'evento UserForm_Activate?

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

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi WCB » 14/08/19 15:18

Ciao Anthony,
la tua soluzione è formidabile! ;) ;)
Grazie mille dell'aiuto :)
P.S. "Magari qualcun altro trova il modo di bloccare all'origine l'evento UserForm_Activate?" cosa vorresti dire con ciò :?:
"I computer sanno quando vai di fretta"
Excel 2016
Avatar utente
WCB
Utente Senior
 
Post: 101
Iscritto il: 09/01/19 17:52

Re: Ritornare alla page corrente (multip) dopo chiusura user

Postdi Anthony47 » 14/08/19 17:06

Magari qualcun altro trova il modo di bloccare all'origine l'evento UserForm_Activate?
Io ho messo una pezza per limitare l'impatto della UserForm_Activate; magari qualcun altro, seguendo altri ragionamenti, potrebbe capire come impedire l'insorgere dell'evento Activate, e sarebbe ancora meglio...
Avatar utente
Anthony47
Moderatore
 
Post: 16601
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Ritornare alla page corrente (multip) dopo chiusura userform":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti