Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Riportare finestra Excel in primo piano

1,284 views
Skip to first unread message

Scossa

unread,
Aug 23, 2009, 7:56:38 AM8/23/09
to

Ciao a tutti,

ho un piccolo, ma fastidioso quanto le zanzare, problema che si può
semplificare e riprodurre per prova così:

foglio excel con commandbutton che carica una userform:

'nel modulo del foglio
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub


La userform contiene un unico commandbutton che crea un e-mail vuota in
outlook la minimizza e segnala "OK" con un messagebox:


'nella userform
Private Sub CommandButton1_Click()

' nb: è necessario il riferimento a "Microsoft Outlook 11.0 Object
' Library" (Strumenti->riferimenti)

Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.Mailitem

Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.Display
.Application.ActiveInspector.WindowState = olMinimized
End With
MsgBox "ok"
Unload Me

End Sub


Il problema è che, nonostante Excel sia in primo piano non è attivo (la
caption di Excel lampeggia) e la msgbox resta nascosta finchè non clicco
sul foglio.

Ho provato:
- a spostare l'istruzione unload me prima di msgbox

- a inserire le due seguenti istruzioni prima di msgbox
Excel.Application.WindowState = xlMinimized
Excel.Application.WindowState = xlMaximized

- a inserire l'istruzione Excel.Windows(1).Activate

e varie altri tentativi ma senza risolvere il problema.

Cosa mi sfugge?
Come posso attivare Excel e portare in automatico in primo piano la
msgbox?

Grazie.

--

Bye!

Scossa

r

unread,
Aug 23, 2009, 11:11:01 AM8/23/09
to

"Scossa" ha scritto:

prova così:
Private Sub CommandButton1_Click()

' nb: è necessario il riferimento a "Microsoft Outlook 11.0 Object
' Library" (Strumenti->riferimenti)

Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.Mailitem

Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.Display
.Application.ActiveInspector.WindowState = olMinimized
End With
MsgBox "ok"
Unload Me

ThisWorkbook.Activate
End Sub

saluti
r
--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html


Scossa

unread,
Aug 23, 2009, 11:28:01 AM8/23/09
to
In article <C1BE0766-8777-491E...@microsoft.com>,
r...@discussions.microsoft.com says...
> prova così:
> ...
> ThisWorkbook.Activate
>

Niente da fare :-(

Ho provato anche:
Excel.Windows(1).Activate
ThisWorkbook.Activate

ma non cambia nulla!

Non c'è modo di simulare il click sulla finestra o di richiamare
l'evento "UserForm_Click()" ?
Per esempio qualcosa di simile a
call UserForm_Click()

(che, per inciso, anche cambaindola da private a public genera errore
nel codice: "sub o function non definita")


Grazie ancora.
--

Bye!

Scossa

r

unread,
Aug 24, 2009, 5:11:01 AM8/24/09
to
"Scossa" ha scritto:

il tuo codice di esempio fa ciò che desideri
forse non ci hai detto tutto.
Non riuscendo a simulare il tuo problema
lascio la parola ad altri.
ciao

r

unread,
Aug 24, 2009, 5:26:01 AM8/24/09
to

"r" ha scritto:

> "Scossa" ha scritto:
>
> > In article <C1BE0766-8777-491E...@microsoft.com>,
> > r...@discussions.microsoft.com says...
> > > prova così:
> > > ...
> > > ThisWorkbook.Activate
> > >
> >
> > Niente da fare :-(
> >
> > Ho provato anche:
> > Excel.Windows(1).Activate
> > ThisWorkbook.Activate
> >
> > ma non cambia nulla!
> >
> > Non c'è modo di simulare il click sulla finestra o di richiamare
> > l'evento "UserForm_Click()" ?
> > Per esempio qualcosa di simile a
> > call UserForm_Click()
> >
> > (che, per inciso, anche cambaindola da private a public genera errore
> > nel codice: "sub o function non definita")
>
> il tuo codice di esempio fa ciò che desideri
> forse non ci hai detto tutto.
> Non riuscendo a simulare il tuo problema
> lascio la parola ad altri.
> ciao
> r

ultimo tentativo:

VBA.AppActivate ThisWorkbook.Parent & " - " & ThisWorkbook.Name

saluti

Scossa

unread,
Aug 24, 2009, 5:39:04 AM8/24/09
to
On 24 Ago, 11:26, r <r...@discussions.microsoft.com> wrote:
>
> ultimo tentativo:
>
> VBA.AppActivate ThisWorkbook.Parent & " - " & ThisWorkbook.Name
>


GRANDE!!!! questo funziona!

Ti assicuro che senza questa istruzione non c'era verso di avere Excel
attivo senza cliccare sulla finestra!

Grazie davvero!

---
Bye!
Scossa

Scossa

unread,
Aug 24, 2009, 6:03:17 AM8/24/09
to
On 24 Ago, 11:26, r <r...@discussions.microsoft.com> wrote:
> "r" ha scritto:

>
>
> VBA.AppActivate ThisWorkbook.Parent & " - " & ThisWorkbook.Name
>

VBA.AppActivate Me.Name

mi permette di non chiudere la userform!

Questo il codice finale:

Private Sub CommandButton1_Click()


Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.Mailitem


Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.Display
.Application.ActiveInspector.WindowState = olMinimized
End With

VBA.AppActivate Me.Name

MsgBox "ok"
' altre istruzioni ....

Unload Me

End Sub


Grazie ancora!

---
Bye!

Scossa

0 new messages