Condividi:        

[Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 19/06/10 12:24

Codice: Seleziona tutto
Set XL = CreateObject("EXCEL.APPLICATION")
XL.Visible = True
XL.AskToUpdateLinks = False
XL.DisplayAlerts = False
Set wB = XL.Workbooks.Open("\\CEDINFOSERVER\Casellario\RUBRICA.XLS")
XL.ActiveWorkBook.SaveAs "C:\Documents and Settings\utente\Desktop\RUBRICA.XLS"
XL.ActiveWorkBook.Close
XL.AskToUpdateLinks = False
Set wB = XL.Workbooks.Open("C:\Documents and Settings\utente\Desktop\RUBRICA.XLS")
Questo codice mi
apre una rubrica su un server, me la salva sul desktop e chiude la rubrica sul server e apre quella sul desktop….. però forse c’è qualche errore, perchè se apro la rubrica sul server da un altro pc mi dice che è usata da altro utente quindi di solo lettura….. evidentemente non si chiude dov’è l’errore?

Avviso all'utente: sei pregato di leggere con attenzione e seguire quanto dettato dalle Regole del Forum. In particolare quanto scritto al punto 3: Usate il campo Oggetto per identificare il problema. La prossima discussione aperta con un titolo palesemente in contrasto con tale norma (e con il buon senso) potrà essere chiusa senza ulteriore avviso. Grazie.
Titolo modificato (era: "codice"... sic) e topic spostato.
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Sponsor
 

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi Anthony47 » 19/06/10 22:39

Prova dopo aver chiuso il workbook ad "annullare" gli oggetti wB e XL, ponendoli ambedue a Nothing.
Riaprirai poi nuovamente una istanza di XL per aprire il file locale.


Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19214
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 20/06/10 08:46

ti dispiace se me la fai tu questa modifica?
grazie
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi maxmula » 22/06/10 10:11

trittico69 ha scritto:ti dispiace se me la fai tu questa modifica?
grazie


Miiiiii che complicazione!.... :)
Basta scrivere "SET WB=Nothing" e "SET XL = Nothing"!!!!! appena prima del comando di chiusura!!!

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 22/06/10 17:08

Set XL = CreateObject("EXCEL.APPLICATION")
XL.Visible = True
XL.AskToUpdateLinks = False
XL.DisplayAlerts = False
Set wB = XL.Workbooks.Open("\\CEDINFOSERVER\Casellario\RUBRICA.XLS")
XL.ActiveWorkBook.SaveAs "C:\Documents and Settings\utente\Desktop\RUBRICA.XLS"
SET WB=Nothing
SET XL = Nothing
XL.ActiveWorkBook.Close
XL.AskToUpdateLinks = False
Set wB = XL.Workbooks.Open("C:\Documents and Settings\utente\Desktop\RUBRICA.XLS")


Mi dice necessario oggetto xl
credo che il problema stia nel fatto che con "XL.ActiveWorkBook.Close"si chiude la finestra e non il file ecxel...
mi serve il comando per chiudere il file
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi Anthony47 » 22/06/10 23:11

Perdona, ma se invece di normali istruzioni vba hai voluto utilizzare uno script mi immagino che conosci come attuare i suggerimenti semplici; dovresti anche sapere che per qualificare un messaggio di errore devi indicare a quale istruzione ci si riferisce, cioe' quella evidenziata se scegli Debug.
A tentoni... Avevo detto "Prova dopo aver chiuso il workbook ad "annullare" gli oggetti wB e XL, ponendoli ambedue a Nothing."
Dovresti quindi mettere i due Set DOPO la workbook.close
Codice: Seleziona tutto
XL.ActiveWorkBook.Close   'Esistente
SET WB=Nothing        '<<< ADD
SET XL = Nothing      '<<< ADD

Avevo poi detto "Riaprirai poi nuovamente una istanza di XL per aprire il file locale." Vuol dire che continuerai con
Codice: Seleziona tutto
Set XL = CreateObject("EXCEL.APPLICATION")   '<< ADD
XL.Visible = True                   '<<ADD
XL.AskToUpdateLinks = False  'Esistente

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19214
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 23/06/10 14:41

Set XL = CreateObject("EXCEL.APPLICATION")
XL.Visible = True
XL.AskToUpdateLinks = False
XL.DisplayAlerts = False
Set wB = XL.Workbooks.Open("C:\Documents and Settings\domenico\Desktop\Cartel1.xls")
XL.ActiveWorkBook.Close
SET WB=Nothing
SET XL = Nothing

avevo già provato ....anche cosi il file excel resta aperto
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi Anthony47 » 23/06/10 23:34

La macro che hai inserito nell' ultimo post non lavora su un file di rete, quindi non e' quella di cui stiamo a parlare, che dovrebbe essere del tipo:
Codice: Seleziona tutto
    Set XL = CreateObject("EXCEL.APPLICATION")
    XL.Visible = True
    XL.AskToUpdateLinks = False
    XL.DisplayAlerts = False
    Set wB = XL.Workbooks.Open("\\CEDINFOSERVER\Casellario\RUBRICA.XLS")
    XL.ActiveWorkBook.SaveAs "C:\Documents and Settings\utente\Desktop\RUBRICA.XLS"
    XL.ActiveWorkBook.Close
SET WB=Nothing
SET XL = Nothing
Set XL = CreateObject("EXCEL.APPLICATION")
XL.Visible = True

    XL.AskToUpdateLinks = False
    Set wB = XL.Workbooks.Open("C:\Documents and Settings\utente\Desktop\RUBRICA.XLS")

Se anche cosi', cioe' chiudendo l' applicativo excel, il file sul server risulta aperto beh questo e' un mistero del sistema operativo server.
Come bypass potresti aprire tu stesso il file in modalita' read only, in modo da non impedirne il pieno uso agli altri utenti; d' altra parte tu lo apri solo per salvarlo con altro nome.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19214
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 24/06/10 00:39

ok...domani provo e ti faccio sapere....comunque si potrebbe anche dare un comando sendKeys alt+f4 per chiudere il file excel....che ne dici?
se va bene come si scrive?
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi trittico69 » 24/06/10 11:15

provato.... resta sempre aperta.......sai dirmi come usare il comando sendKeys alt+f4 per chiudere il file excel?
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi maxmula » 24/06/10 11:44

Prova così:
Codice: Seleziona tutto
    wsh.SendKeys "%{F4}"


dove wsh è il nome dell'oggetto destinatario creato da Set.

Un'utile lista dei comndi è qui:http://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm

Un po' di spiegazioni su SendKeys: http://social.msdn.microsoft.com/Search/en-us/?Query=sendkeys


Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto

Postdi Anthony47 » 24/06/10 14:12

Prima di provare con Sendkey ferma la macro dopo l' istruzione SET XL = Nothing e controlla tramite TaskManager se c' e' un processo Excel.exe in esecuzione.
Mi chiedo anche come stai debuggando il fenomeno: se dopo la prima macro sul server il file e' rimasto "aperto", cosa hai fatto prima di tutti gli altri test per resettare questo stato?
Infine dovresti spiegare come lanci la macro di cui parliamo, perche' io ancora non ho capito la scelta di usare uno script.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19214
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel VBA]Dopo ActiveWorkBook.Close il file è ancora aperto":


Chi c’è in linea

Visitano il forum: Anthony47, Carletto Ribolla e 38 ospiti