Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - MISTERO.......almeno per me !!!
Forum - Visual Basic 6 - MISTERO.......almeno per me !!!

Avatar
maste (Normal User)
Newbie


Messaggi: 6
Iscritto: 30/06/2009

Segnala al moderatore
Postato alle 11:15
Martedì, 30/06/2009
Ciao a tutti. Spero proprio ci sia qualcuno che riesca a dissipare il mistero che si fa sempre più fitto, tra la'ltro già passato ad altri siti di programmatori ma senza esiti positivi.
Sottopongo il quesito:
il codice di seguito apre tre diversi file excel e ne copia i fogli su uno di essi.
la cosa strana è che ogni volta che apro il database access che contiene il codice, la prima volta che lo lancio il codice esegue perfettamente.la seconda volta mi genera un errore sulla prima istruzioni copy "indici non compresi nell'intervalo".se chiudo il db e lo riapro e rieseguo il codice,la prima volta funziona, se lo rilancio rigenera l'errore.
e’ come se ogni volta che si esegue la funzione dopo all’apertura del db, rimanga in memoria qualcosa, fino alla chiusura del db, che ne compromette l’ulteriore esecuzione.
qualcuno sa dirmi cosa sbaglio ?


Dim appExc as New excel.Application

With appExc
    
    .Visible = True

    .Workbooks.Open FileName:="C:\Cartella1.xlsx"
    .Workbooks.Open FileName:= "C:\ Cartella2.xlsx"
    .Workbooks.Open FileName:= "C:\Cartella3.xlsx"
    .Windows("Cartella2.xlsx").Activate
    .Sheets("FoglioCartella2").Select
    .Sheets("FoglioCartella2").Copy After:=Workbooks("Cartella1.xlsx").Sheets("FoglioCartella1")
    
    .Windows("Cartella3.xlsx").Activate
    .Sheets("FoglioCartella3").Select
    .Sheets("FoglioCartella3").Copy After:=Workbooks("Cartella1.xlsx").Sheets("FoglioCartella1")

End With

set appExc = Nothing


PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:31
Martedì, 30/06/2009
Se non ho capito male, non stai lavorando con il VB6 (proprio di questo forum) ...

In tutti i casi, non mi sembra tu esegua la Close dei file Excel ...

PM Quote
Avatar
maste (Normal User)
Newbie


Messaggi: 6
Iscritto: 30/06/2009

Segnala al moderatore
Postato alle 11:37
Martedì, 30/06/2009
Scusa se ho usato lo spazio sbagliato. L'ambiente è il VBA di access.
I file aperti li chiudo manualmente dopo aver verificato la corretta esecuzione del codice. Però ho provato anche ad inserire nel codice la close ed il quit ma l'esito è sempre lo stesso. Al secondo lancio del codice genera l'errore.
Sto impazzendo per capire cosa non va....

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:40
Martedì, 30/06/2009
Mostrami il codice corretto con le Close e Quit ... (non chiudere a mano i file ...)

PM Quote
Avatar
maste (Normal User)
Newbie


Messaggi: 6
Iscritto: 30/06/2009

Segnala al moderatore
Postato alle 11:47
Martedì, 30/06/2009
Aggiungo le seguenti  istruzioni all'interno del With
    .Windows("cartella1.xlsx").Close
    .Windows("cartella2.xlsx").Close
    .Windows("cartella3.xlsx").Close


PM Quote
Avatar
maste (Normal User)
Newbie


Messaggi: 6
Iscritto: 30/06/2009

Segnala al moderatore
Postato alle 11:54
Martedì, 30/06/2009
Dimenticavo..... aggiungo anche
    .Quit


PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 13:41
Martedì, 30/06/2009
Devi usare sempre l'oggetto Application per referenziare oggetti/metodi di Excel ... quindi

.Sheets("FoglioCartella2").Copy After:=appExc.Workbooks("Cartella1.xlsx").Sheets("FoglioCartella1")

e

.Sheets("FoglioCartella3").Copy After:=appExc.Workbooks("Cartella1.xlsx").Sheets("FoglioCartella1")

PM Quote
Avatar
maste (Normal User)
Newbie


Messaggi: 6
Iscritto: 30/06/2009

Segnala al moderatore
Postato alle 15:57
Martedì, 30/06/2009
FUNZIONAAAAAAAAAAAAAA...
Grazie infinite.
magari era anche facile, ma tutto è facile per chi sa cosa fare....
E tu lo sapevi...io no !!!
Grazie ancora

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:21
Martedì, 30/06/2009
Prego, ciao.

PM Quote