Aprire una UserForm cliccando sull'icona di Excel posta sulla barra delle applicazioni

Anonimo
2015-06-10T09:29:41+00:00

Buon giorno

Con Excel 2007, cliccando sul file si apre una UserFor tramite un codice su ThisWorkbook

Tramite un pulsante, sulla UserForm la chiudo e riduco Excel a icona sulla barra delle applicazioni.

Cliccando sull'icona di Excel si apre il foglio, ma non la UserForm.

Cercando su internet ho trovato solamente il codice che già utilizzo per aprire la UserForm all'avvio.

Esiste un codice che riaprendo Excel visualizzi la UserForm?

Da quella via sarebbe opportuno far aprire la UserForm che era attiva al momento della sua riduzione ad icona.

In alternativa si potrebbe inserire sulla Barra delle applicazioni una UserForm che cliccandoci mi riporta alla UserForm precedente.

Grazie

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
2015-06-13T06:44:49+00:00

Ciao Giorgio PietroCherubini,

ho verificato e con Excel 2007 l'evento Workbook_WindowResize non viene attivato. Probabile bug, visto ciò che si dice in questo thread (in cui non si parla solo di Mac):

**Can't seem to get the Workbook\_WindowResize event to fire**

Pertanto ho pensato che forse un mezzuccio, che però non mi piace, poteva risolvere. Vedi se fa al caso tuo:

____________________________________________________________

' Module : Modulo1

'

Option Explicit

Public Sub MostraUserForm()

      UserForm1.Show vbModal

End Sub

Public Sub TestWindowState()

      If Application.WindowState = xlMinimized Then

        Application.OnTime Now + TimeSerial(0, 0, 1), "TestWindowState"

      Else

        MostraUserForm

      End If

End Sub

____________________________________________________________

' Module : ThisWorkbook (Questa_cartella_di_lavoro)

'

Option Explicit

Private Sub Workbook_Open()

      MostraUserForm

End Sub

____________________________________________________________

' Module          : UserForm1

'

' Controls

'

' CommandButton1  : CommandButton

'

Option Explicit

Private mblnOnIconize As Boolean

Private Sub CommandButton1_Click()

      mblnOnIconize = True

      Unload Me

End Sub

Private Sub UserForm_Initialize()

      Me.CommandButton1.Caption = "Riduci a icona"

End Sub

Private Sub UserForm_Terminate()

      If mblnOnIconize Then

        Application.WindowState = xlMinimized

        TestWindowState

      End If

End Sub

____________________________________________________________

La risposta è stata utile?

0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-06-11T21:56:35+00:00

    Ciao Maurizio

    All'apertura del file la UserForm si apre automaticamente per la Private Sub Workbook_Open()

    Chiudendola con Private Sub CommandButtom1_Click() scompare la UserForm, Excel e l'icona di Excel, sulla Barra delle applicazioni,, lampeggia e si colora di giallo.

    Cliccando sul'icona si riapre Excel e sopra la UserForm.

    Richiudendola, con il solito pulsante, l'icona di Excel non lampeggia più e non si colora di giallo.

    Ricliccando sull'icona di Excel si apre Excel ma non la UserForm.

    Concludendo, l'operazione di ridurre ad icona l'applicativo fatto con Excel la prima volta funziona e la vbModal si attiva, l'icona di Excel lampeggia e si colora di giallo, mentre la seconda volta no.

    E' per questo che ho cercato su internet, senza successo, il codice di Windows, suppongo, che intercetta il click dell'operatore sull'icona di Excel sulla Barra delle applicazioni, pensando di collegarci, oltre alla espanzione, tramite xlMaximizede di Excel anche l'apertura della UresForm precedentemente chiusa.

    Se vi sono delle idee fammi sapere.

    Grazie

    PS Un percorso non ancora valutato, e non so se è possibile, è quello di creare un'icona dedicata alla cartella, da porre sul Desktop, e quindi sulla Barra delle applicazioni, in modo da creare un codice dedicato alla gestione dell'applicativo che lo collega a Windows.

    Può darsi che sia un po confuso su questa parte ma mi vengono in mente quei programmi che utilizzano Excel come foglio di elaborazione dei dati, e forse anche come interfaccia, mentre questi vengono, o venivano, archiviati in un file remoto, dBase se non ricordo male, da affiancare ad Excel.

    Al di la di questo è comunque importante trovare il modo di poter ridurre ed espandere più che Excel, che agisce sottotraccia, le varie UserForm che servono ad archiviare e manipolare le informazioni.

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-06-11T14:16:38+00:00

    Fa un solo ciclo poi ritorna il foglio di Excel.

    Guarderò se riesco a renderla continua

    [...]

    Ciao Giorgio PietroCherubini,

    cosa vogliono dire le due frasi che ho quotato qui su?

    1. Cos'è un ciclo?
    2. Cosa intendi con renderla continua?
    3. Sei sicuro di chiudere lo UserForm col pulsante di comando e non col pulsante Chiudi [X]?

    Qui l'esempio che a me funziona, ammesso che io abbia interpretato bene ciò che intendi ottenere:

    Aprire una UserForm cliccando sull'icona di Excel posta sulla barra delle applicazioni

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-06-11T13:40:20+00:00

    Non funziona.

    L'ho modificata nel seguente modo:

    in ThisWorkbook.

    Option Explicit

    Private Sub Workbook_Open()

          MostraUserForm

    End Sub

    Private Sub Workbook_Activate()

          MostraUserForm

    End Sub

    Private Sub Workbook_WindowResize(ByVal Wn As Window)

          If Me.Application.WindowState = xlMaximized Then

            MostraUserForm

          End If

    End Sub

    Fa un ciclo e poi ritorna il foglio Excel.

    Stavo cercando il codice VB che avvia l'apertura del file di Excel quando viene ridotto ad icona per utilizzarlo come evento che, oltre a ripristinare il file, espanda la UserForm.

    Non so se è possibile?

    Se ci sono altre soluzioni da verificare sono ben accette.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-06-10T10:08:29+00:00

    Ciao Giorgio PietroCherubini,

    vedi se il seguente codice può fare al caso tuo (sperimenta prima in una nuova Cartella di lavoro unicamente con quanto di seguito indicato):

    ____________________________________________________________

    ' Module : Modulo1

    '

    Option Explicit

    Public Sub MostraUserForm()

          UserForm1.Show vbModal

    End Sub

    ____________________________________________________________

    ' Module : ThisWorkbook (Questa_cartella_di_lavoro)

    '

    Option Explicit

    Private Sub Workbook_Open()

          MostraUserForm

    End Sub

    Private Sub Workbook_WindowResize(ByVal Wn As Window)

          If Me.Application.WindowState = xlMaximized Then

            MostraUserForm

          End If

    End Sub

    ____________________________________________________________

    ' Module          : UserForm1

    '

    ' Controls

    '

    ' CommandButton1  : CommandButton

    '

    Option Explicit

    Private mblnOnIconize As Boolean

    Private Sub CommandButton1_Click()

          mblnOnIconize = True

          Unload Me

    End Sub

    Private Sub UserForm_Terminate()

          If mblnOnIconize Then

            Application.WindowState = xlMinimized

          End If

    End Sub

    ____________________________________________________________

    La risposta è stata utile?

    0 commenti Nessun commento