› Sviluppare funzionalita su Microsoft Office con VBA › Nascondere Excel
-
AutoreArticoli
-
Ciao raga vi propongo il mio quesito:
sto sviluppando un gestionale, il quale all'apertura nasconde Excel e mostra il form Principale (lavora tutto su userForm) tramite il comando
Application.Visible=Falseperò mi sono reso conto che se avessi aperta qualche altra cartella di lavoro, nasconde tutto.
Esiste un comando simile ma che nasconda solamente la cartella di lavoro interessata? Tipo :
'Questo è semplicemnte un esempio, non esiste questo comando. ThisWorkbook.Visible=FalseVi chiedo questo perché, mi sono reso conto che stavo sbagliando seguendo uno dei topic presenti in questo forum, infatti prima usavo il comando:
Application.Quit 'Sostituito con ThisWorkbook.closeAvete qualche soluzione da suggerirmi?
Grazie mille a chiunque voglia ed abbia il tempo di aiutarmi.
POtresti passare tramite
Set aaa = Workbooks.Item(3).Windows aaa.visible=True/FalseDal registro devi impostare una nuova chiave in modo che quando apri excel apre sempre una nuova istanza
Nel registro Excel\Options
Nuovo valore DWORD
DisableMergeInstance il nome della chiave
impostare il valore a (1)
Potresti passare tramite
Set aaa = Workbooks.Item(3).Windows aaa.visible=True/Falsegrazie ma l'intellisense non lo fa scrivere e non funziona "Proprietà o metodo non supportato dell'oggetto.
Dal registro devi impostare una nuova chiave in modo che quando apri excel apre sempre una nuova istanza
Ciao non ho trovato la chiave da te specificata "Excel\Options" nel registro di sistema.
Comunque ad ogni istanza di Excel si apre una nuova finestra, di già!
Grazie per il video, l'ho visto e l'ho salvato per metterci mano domani pomeriggio. Stanotte si lavora!!!
Penso che userò l'ultimo metodo, aprire il gestionale tramite file.vbs.
Vi aggiorno, grazie mille 💪
Io ti avevo indicato la via migliore così devi sempre aprire un File per aprirne un'altro
prova questa macro
`Private Sub CommandButton1_Click() Dim objExcel Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\Prova\tabellone.xlsb") objExcel.Visible = True Set objExcel = Nothing End Sub`, comunque in rete si trovano anche script in vba
Io ti avevo indicato la via piu semplice , comunque in rete si trovano anche script in vba
Ma dai veramente!? Non è che mi faresti la cortesia!!
La via del registro per non è fattibile perché il progetto non è per me ma per un mio amico. Non penso sia in grado di mettere mani al registro e neanche posso creare qualcosa via codice per modificarlo, l'antivirus potrebbe bloccare le modifiche.
te l'ho aggiunto sopra ma non mi sembra che vada bene , quando esci ti si riapre il foglio del file aperto
vedi se trovi qualcosa di valido poi mi fai sapere
M'ha ho dei dubbi che su una sola istanza si possa fare
Tempo fa prima di iniziare ad usare piu istanze avevo fatto un menu per aprire tutti i miei file , ma sinceramente non mi è mai piaciuto , ti posso garantire che va meglio con una nuova istanza , tra l'altro puoi chiudere anche con Application.quit che si chiude sempre solo il foglio interessato , se ne hau 2 o 3 aperti e uno si blocca puoi chiudere solo quello bloccato cosa che con foglio in una sola Istanza non puoi fare , se la chiudi si chiude tutti i fogli aperti
apri un file NUOVO e poi prova l'allegato
Allegati:
You must be logged in to view attached files.Ciao grazie per l'interessamento, vengo da un turno notturno e sto per crollare 😴 poi oggi ho una giornata impegnativa, non so proprio se riuscirò a mettermi al PC (spero di trovare una mezz'oretta per accenderlo!!)
Ma domani cascasse il mondo 🤣🤣🤣🤣
aggiornamento:
ho finito il tempo a mia disposizione e non so quando potrò rivedere il file che ti allego
(forse... verso fine settimana prossima... sicuramente altri ti daranno degni suggerimenti
prima che io ci rimeta mano),
ma sono certo che con la tua esperienza saprai "giocarci" e sistemartelo a dovere
Allegati:
You must be logged in to view attached files.ma sono certo che con la tua esperienza saprai "giocarci" e sistemartelo a dovere
Mi stai sopravvalutando 😁 infatti non ci ho capito niente 🤣🤣
ciao Luca,
ho trovato un pò di tempo....
giocaci e fai sapere
Frank
Allegati:
You must be logged in to view attached files.il comportamento:
- se apro solo il file da te postato, si apre Excel senza nessuna cartella di lavoro attiva.
- se apro prima un file qualsiasi e poi il tuo, visivamente non succede niente.
Ho provato a cerca il codice scritto ma non ne ho trovato.
Aspè, non avevo visto il nuovo file... attendere prego
ciao comportamento identico, non riesco a capire cosa sbaglio!
Cosa dovrebbe fare il tuo file?
ti riposto il file:
1 - se apri solo questo hai solo il form nel quale ho messo un pulsante per vedere la cartella:
"mostra foglio di questo file"
2 - se prima apri un altro file o più files, e poi quello che ho postato:
alla chisura con pulsante sul form o alla chiusura con la X in alto a destra, chiude il file ed iconizza gli altri.
Ora ho veramente terminato il tempo a disposizione.
Buona domenica e settimana.
Frank
Allegati:
You must be logged in to view attached files.Ciao buona domenica a te, stai tranquillo, quando hai tempo ripassa e ne riparliamo.
Ho provato il nuovo file e non è cambiato niente:
- solo il tuo file, si apre Excel vuoto senza nessuna cartella di lavoro, quindi nessun foglio/form con pulsanti e codice da visualizzare.
- prima un altro file e poi il tuo, stesso comportamento come sopra.
Grazie sempre per l'interesse.
ma hai provato a cliccare sul pulsante evidenziato?
Diversamente non so, a me funziona
Private Sub Workbook_Open() Dim a As String, avviso As Integer a = ThisWorkbook.Name Select Case Workbooks.Count Case 1 Windows(a).Visible = False UserForm1.Show Case Is > 1 avviso = MsgBox("Ricorda,hai già altri file aperti", vbOKOnly, "verifica file aperti") UserForm1.Show Windows(a).Visible = False End Select End Sub Private Sub CommandButton1_Click() Dim a As String, wb As Workbook a = ThisWorkbook.Name Select Case Workbooks.Count Case 1 Windows(a).Visible = False Application.Quit Case Is > 1 avviso = MsgBox("Hai già altri file aperti", vbYesNo, "verifica file aperti") If avviso = 6 Then '============================================== For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then Application.WindowState = xlMinimized End If Next wb '============================================== ThisWorkbook.Close savechanges:=True Else ThisWorkbook.Close savechanges:=True Application.Quit End If End Select End Sub Private Sub CommandButton2_Click() Dim a As String a = ThisWorkbook.Name Windows(a).Activate UserForm1.Hide End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim a As String, avviso As Integer Select Case Workbooks.Count Case 1 Application.Quit Case Is > 1 avviso = MsgBox("Hai già altri file aperti ", vbYesNo, "verifica file aperti") If avviso = 6 Then '============================================== For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then Application.WindowState = xlMinimized End If Next wb '============================================== Else Application.Quit End If End Select End Sub Sub user_form() Dim a As String a = ThisWorkbook.Name UserForm1.Show Windows(a).Visible = False End SubAllegati:
You must be logged in to view attached files.Almeno da me, il file non contiene nessuna cartella di lavoro, quindi nessun foglio e form da visualizzare
-
AutoreArticoli

