La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Ciao a tutti, vi allego un piccolo gestionale (cantieri prova) che funziona perfettamente tranne per un aspetto: ho bisogno di lavorare contemporaneamente anche su un file excel normale che allego nel caso in cui il problema fosse limitato a quel singolo elemento, ma non riesco ad aprirlo o se è già aperto da prima si blocca e non riesco più a modificarlo o chiuderlo. C'è modo di aggirare il problema? Come sempre, grazie in anticipo a tutti!
PS Scusate se il gestionale vi sembrerà "strano" ma ho dovuto modificare o eliminare diversi dati per ragioni di privacy...
Ciao @Cyberlady, se ho capito bene la tua richiesta, il problema nasce dal fatto che il file "cantieri prova.xlsm" avendo delle UserForm, quando esse vengono aperte, a causa del fatto che sono di default mostrate in "Modale" allora verrà impedito l'interazione con i fogli o altri file aperti.
Per aggirare il problema devi impostare tra le proprietà delle varie UserForm ShowModal = False
Ma attenzione...a quel punto sei a rischio modifica dei dati nei vari Fogli e tutte le UserForm aperte sono libere di essere scaricate (chiuse) senza che la precedente sia stata scaricata.
@alexps81 grazie, il problema è risolto solo in parte nel senso che adesso posso usare entrambi i file ma aprendo il gestionale si apre anche il suo foglio excel mentre preferirei visualizzare solo le userform e richiamare il foglio solo se ce n'è bisogno con il pulsante "apri excel" che avevo già predisposto
ciao
cyberlady
posso darti un consiglio
utilizza OFFICE TAB
(ci dovrebbe essere una versione gratuita)
che ti apre i file a schede...come il browser per intenderci
ti allego una immagine con 5 file aperti
basta cliccare sulla linguetta in alto per passare da uno all'altro
Ciao @Cyberlady,
io ho capito quello che vorresti fare. In pratica tu vuoi aprire il file "Cantieri prova.xlsm" senza mostrare i fogli ma solo con le UserForm. Ma vuoi anche poter lavorare anche con altri file continuando a lasciar nascosti i fogli del file "Cantieri prova.xlsm"
Per provare a fare ciò che chiedi bisogna far lavorare il file "Cantieri prova" su una istanza a parte rispetto a tutti gli altri file che andrai ad aprire.
Non esiste nativamente qualcosa che possa fare questa cosa, ma dobbiamo aggirare il problema con uno "script" in vbs.
Cioè dobbiamo aprire il file "Cantieri prova.xlsm" non dal file Excel ma tramite lo "script" ma prima che venga aperto dobbiamo dirgli di creare una istanza tutta sua ed aprire il file in questa istanza.
Proviamo a fare questa cosa:
1. apri il "Blocco note"
2. incolla questo "script"
Dim xlApp Dim percorso percorso = tra virgolette il percorso dove risiede il file e lo \ finale. Ad esempio: "C:\Desktop\" Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False xlApp.Workbooks.Open percorso & "cantieri prova.xlsm"
3. salva con nome il file ma anziché scegliere
Dunque continuo il post precedente perché non ho avuto tempo per completarlo:
3. salva con nome il file ma anziché scegliere salva come Documento di testo txt, scegli Tutti i file. Come nome dagli un nome qualsiasi, purché finisca con .vbs
4. questo file se lo lanci, aprirà il file "Cantieri prova.xlsm" ma prima di lanciarlo esegui le modifiche che ti spiego nei prossimi punti nel file Excel
5. apri il file "Cantieri prova.xlsm", il codice nell'evento Open lo modifichi così:
Private Sub Workbook_Open() Application.Visible = False Apertura.Show vbModeless End Sub
il codice nel pulsante "Esci" lo modifichi così:
Private Sub CommandButton6_Click() Dim risposta As VbMsgBoxResult risposta = MsgBox("Vuoi uscire?", vbYesNo + vbQuestion, "Conferma uscita") If risposta = vbNo Then Exit Sub ThisWorkbook.Saved = True If Application.Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close SaveChanges:=False End If End Sub
il codice nel pulsante "Apri Excel" lo modifichi così:
Private Sub CommandButton7_Click() Application.Visible = True Unload Apertura ActiveSheet.Cells(1, 1).Select End Sub
in più aggiungi questo codice che impedisce la chiusura della UserForm dalla X in alto a destra perché altrimenti rischi di chiudere la UserForm ma l'istanza Excel rimane aperta ma nascosta:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True End Sub
Ti consiglio di collocare il file "Cantieri prova.xlsm" in un percorso a parte così da evitare errori. Ricorda che se modifichi il percorso del file, dovrai modificarlo anche nello "script" in vbs. Per aprire lo "script" dovrai fare click tasto destro con il mouse e poi scegli Apri con...Blocco note
Prova a vedere se questa può essere una valida soluzione.