Condividi tramite

Attiva UserForm (vbModeless) con "SheetSelectionChange"

Anonimo
2022-02-06T18:17:19+00:00

Ho un UserForm vbModeless che dovrei riattivare ogni volta che cambio la cella attiva nel foglio attivo

nell'evento SheetSelectionChange quale espressione devo usare ?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2022-02-07T11:07:21+00:00

Solo per aggiungere, se la tua intenzione fosse quella di scatenare i due eventi UserForm_Activate e UserForm_Initialize, potresti ottenere ciò sostituendo il codice Worksheet_Selection_Change con qualcosa del genere:

'========>>

Option Explicit

'-------->>

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Unload UserForm1

UserForm1.Show vbModeless

End Sub

'<<========

Finalmente, se la tua intenzione fosse anche quella di riattivare la cella selezionata dopo aver visualizzato la UserForm, potresti aggiungere l'istruzione evidenziata:

'========>>

Option Explicit

'-------->>

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Unload UserForm1 

UserForm1.Show vbModeless 

**AppActivate Application.Caption** 

End Sub

'<<========

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2022-02-07T10:43:56+00:00

    Ciao Antonio,

    Solo per aggiungere, se la tua intenzione fosse quella di scatenare i due eventi UserForm_Activate e UserForm_Initialize, potresti ottenere ciò sostituendo il codice Worksheet_Selection_Change con qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Unload UserForm1 
    
    UserForm1.Show vbModeless 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2022-02-07T09:25:09+00:00

    Ciao Antonio,

    Se l'userForm è già visibile la ripetizione di UserForm1.Show vbModeless quale evento attiva dell'userForm ?

    per verificare quale evento attiva:

    Ho aperto l'userform con UserForm1.Show vbModeless

    DOPO

    ho messo un punto interruzzione in UserForm_Activate

    ho messo un punto interruzzione in UserForm_Initialize

    Ho spostato la cella attiva sul foglio attivo

    Ma nessuno dei 2 punti di interruzzione ha bloccato la routing

    Immagine

    Se la UserForm non è visibile, qualsiasi selezione di una nuova cella scatenerà sia gli eventi UserForm_Activate che UserForm_Initialize. Se, tuttavia, se la UserForm è già visibile, nessuno di questi eventi viene scatenato e non viene creato alcun errore.

    Per dimostrare chiaramente questo comportamento, puoi scaricare il mio file di prova Antonio20220207.xlsm

    In questo file, il modulo codice Userform include il seguente codice banale:

    '========>>

    Option Explicit

    '-------->>

    Private Sub UserForm_Activate()

    MsgBox "Evento Activate!"

    End Sub

    '-------->>

    Private Sub UserForm_Initialize()

    MsgBox "Evento Initialize!" 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2022-02-06T19:32:17+00:00

    Se l'userForm è già visibile la ripetizione di UserForm1.Show vbModeless quale evento attiva dell'userForm ?

    per verificare quale evento attiva:

    Ho aperto l'userform con UserForm1.Show vbModeless

    DOPO

    ho messo un punto interruzzione in UserForm_Activate

    ho messo un punto interruzzione in UserForm_Initialize

    Ho spostato la cella attiva sul foglio attivo

    Ma nessuno dei 2 punti di interruzzione ha bloccato la routing

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2022-02-06T18:31:26+00:00

    Ciao Antonio,

    Ho un UserForm vbModeless che dovrei riattivare ogni volta che cambio la cella attiva nel foglio attivo

    nell'evento SheetSelectionChange quale espressione devo usare ?

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    UserForm1.Show vbModeless 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento