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.
ciao,
te la cavi anche con una tabella pivot, come da immagine. Nello stesso file si costruisce come di consueto, altrimenti, volendo la pivot su di un altro file, puoi caricare i dati con le power query come "solo connessione"
@alexps81 grazie è assolutamente perfetto...adesso dovrò trovare il modo di automatizzare anche l'altro file ma visto quanto è vario e quanto è soggetto a cambiamenti temo sia ben oltre le mie capacità
sono gradite risposte anche anche alle altre soluzioni proposte, dato che comunque ti si è dedicato del tempo (gratis)
@lukereds sai sono al lavoro per cui è molto facile che mentre mi occupo del vba io venga interrotta per fare cose più urgenti. Avrei comunque risposto a tutti, ma visto che hai urgenza ti metto in cima alla lista: non credo che tu abbia aperto il file riservato alle ore per le buste paga, altrimenti avresti visto che è molto più complesso di quanto una tabella pivot credo possa sostenere. Lì le ore vanno separate per ordinarie, straordinarie, festive e notturne e vanno considerati i giorni di malattia, ferie, permesso, infortunio. Inoltre la tabella varia di frequente a seconda dei dipendenti da inserire e togliere, per esempio stagionali o contratti a chiamata e a termine. Come ho già detto nella risposta che malauguratamente ha preceduto quella al tuo suggerimento, tenterò di trovare un modo per automatizzare anche quel file ma non credo di avere abbastanza competenze per riuscirci. Grazie infinite per il tuo suggerimento e per il tempo gratuito che mi hai dedicato, anche se nel mio caso il suddetto suggerimento non è applicabile.
@gianfranco55 interessante, sempre meglio che aprire mille file excel contemporaneamente! grazie!
ciao
io lo uso da parecchio
e ti dirò che mi trovo benissimo
hai sempre tutti i file a portata di click
" molto più complesso di quanto una tabella pivot credo possa sostenere."
una pivot può essere create da file (contenuti in power query) con decine di milioni di righe
"credo" significa che la soluzione va provata, o funziona oppure no