Problema col nascondere excel



  • Problema col nascondere excel
    di beppexile data: 11/09/2015 08:25:27

    Salve ragazzi, da qualche giorno ho cambiato Excel e sono passato dalla versione 2010 alla 2013.
    Ho necessità di nascondere Excel completamente e visualizzare soltanto la userform di lavoro, in quanto il file è gestito completamente da userfor, e chiudendo la userform si salva e si chiude anche excel.
    Con Excel 2010 avevo risolto (con il vostro aiuto) con il codice in basso, ma adesso non funziona più, cioè, mi spiego meglio, all'avvio excel è minimizzato, ma se clicco sull'app sulla barra della applicazione, si riapre subito a tutto schermo, e questo non lo vorrei. Qualcuno sa dirmi come fare a bloccare excel minimizzato? Grazie a tutti
     
    Private Sub Workbook_Open()
        With Application
            .ScreenUpdating = False
            .WindowState = xlMinimized
            UserForm1.Show vbModeless
            UserForm1.MultiPage1.SetFocus
            .ScreenUpdating = True
        End With
    End Sub



  • di Vecchio Frac data: 11/09/2015 08:40:21

    Mi sembra strano che Excel 2013 abbia un comportamento diverso dal 2010 (non ce l'ho e non posso verificare) perchè le modifiche al modello ad oggetti di Excel non sono così state sostanziali.





  • di Marius44 data: 11/09/2015 10:20:29

    Buongiorno
    Invece di minimizzare Excel hai provato a massimizzare il Form?
    Vedi la sub sotto (è in workbook_open ma puoi inserirla dove ti pare) che ingrandisce la Form e non fa più vedere cosa c'è sotto. Quando chiudi, come hai detto, chiude tutto e addio Excel.

    Ciao,
    Mario
     
    Private Sub Workbook_Open()
        With UserForm1
            .StartUpPosition = 3
            .Width = Application.Width
            .Height = Application.Height
        End With
        UserForm1.Show
    End Sub
    



  • di beppexile data: 11/09/2015 11:17:18

    Ciao Mario, la tua idea non è male, tuttavia ci sono un problema:
    l'utente può spostare la userform trascinandola con il mouse e apportare modifiche al foglio;
    senza contare che dovrei riposizionare textbox e pulsanti per una migliore impostazione dell'app.
    Il mio scopo è impedire totalmente ogni modifica anche accidentale ai fogli di lavoro.



  • di beppexile data: 11/09/2015 11:32:58

    Ho allegato un video di quello che non voglio che succeda!



  • di tanimon data: 11/09/2015 14:13:31

    ciao,
    non ho guardato il video.

    DOPO aver creato una copia del file su cui fare delle prove,

    potresti usare
    application.visible = false
    all'apertura del file nell'evento Open di ThisWorkbook.

    RICORDATI, di mettere

    application.visible = true

    nell'evento Terminate del Form, per quando lo chiudi con la X in alto a destra,
    altrimenti non vedrai più il foglio di Excel.

    Ciao
    Frank




  • di beppexile data: 11/09/2015 14:48:42

    Nel file ad un certo punto bisogna fare delle anteprime di stampa, e non si vedono.
    Poi, rendendolo invisibile come faccio ad accedere a vba per fare eventuali modifiche?



  • di tanimon data: 11/09/2015 15:00:40

    credo tu debba allegare un file reale per quello che devi fare con relative spiegazioni.

    Allegando un video, costringi chi volesse aiutarti, a doverselo creare ex novo,
    mentre tu ce l'hai già.......

    Togli eventuali dati sensibili!

    Ciao
    Frank



  • di beppexile data: 11/09/2015 15:24:18

    Dunque, ho allegato il file (progetto.rar): scompattato l'archivio troverete anche la dll di un componente aggiuntivo Microsoft (da copiare nella cartella system32 di windows.

    Visto che ci siamo, vi elenco i piccoli bug che non riesco a risolvere, quasi tutti dovuti alla minimizzazione di excel:

    1- All'avvio del file si apre la userform, ma se cliccate in basso sulla finestra di excel sulla barra della applicazioni di windows, excel va a tutto schermo sotto la userform e non voglio che accada.

    2- Visto che per tutto il tempo excel deve stare minimizzato, ho previsto la chiusura e il salvataggio del file tramite la X della userform; questo non mi permetteva di accedere più alla programmazione, così ho creato una scorciatoia, facendo doppio click in basso a destra sulla label "by Autore" e inserendo come password la lettere "p", e possibile chiudere la userform e visualizzare direttamente excel, ma così facendo non si riesce a cliccare sul foglio e ogni volta mi tocca minimizzare e massimizzare excel, se qualcuno sa un modo veloce per accedere al vba sarebbe fantastico.

    Grazie a tutti



  • di tanimon data: 11/09/2015 15:39:14

    Alt + F11,
    di norma visualizza il lato codice,
    ma non so quando avrò tempo per visionare il file e se questo ti risolve il problema.

    Ciao
    Frank



  • di beppexile data: 11/09/2015 15:53:07

    Con la solo userform attivata sullo schermo la combinazione alt+f11 non funziona.



  • di tanimon data: 12/09/2015 07:51:23

    beppexile iniziata il 11/09/2015 14:48:42 dice:
    Poi, rendendolo invisibile come faccio ad accedere a vba per fare eventuali modifiche?

    risposta:
    fai il contrario e lo fai ritornare visibile tramite un command Button apposito sul form con relativo codice ad hoc, da lì Alt+f11


    da lato celle,
    crei una macro per visualizzare di nuovo il form rendendo di nuovo invisibile Ecel lato celle e magari,
    senza creare pulsanti sul foglio, gli assegni una combinazione di tasti tipo Ctrl+a.

    Ciao
    Frank



  • di tanimon data: 12/09/2015 11:38:13

    riallego file con le modifiche dette in precedenza



  • di beppexile data: 15/09/2015 15:46:00

    Sto facendo delle prove, ma c'è un nuovo problema: nascondendo excel, se ci sono diverse applicazioni aperte sullo schermo, è difficile ritornale alla userform perché risuleterebbe sepolta sotto le altre app.... ecco perchè preferivo la strada della minimizzazione.
    Se esiste un modo di avviare solo la userform tenendo costantemente excel minimizzato, e quando clicco sulla linguetta della barra delle applicazioni torno alla userform senza che excel si massimizzi, lo preferisco.



  • di tanimon data: 15/09/2015 19:28:06

    già che stai facendo delle prove,
    prova ad usare
     
    Application.ActiveWindow.Activate