|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
VBA semplice
Con uno script presente in "script.xls" apro un file "dati.xls" dal quale prelevo alcuni dati e li deposito inel foglio del file "script.xls"
i miei desideri sono: a) quando apro "script.xls" e lancio il suo script, "dati.xls" non deve essere visibile all'utente b) se manipolo "script.xls" non mi deve venire chiesto se intendo salvare le modifiche in quanto "script.xls" è un foglio di lavoro che uso solo per visualizzare dati particolari presenti in altri fogli di lavoro grazie e buone vacanze |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
allora:
1) aggiungi <Nome_applicazione>.Visible = False 2) aggiungi <Nome_applicazione>.displayAlerts = False dove <Nome_applicazione> è l'oggetto Application che punta al file "dati.xls" che hai aperto ciao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
innazitutto grazie per le dritte; ho provato con un:
Application.Visible = False ed al termine...... Application.Visible = True ma non è quello che cercavo in quanto viene: a) mostrata la finestra di Excel (il programma) b) letta quindi la linea della macro Application.Visible = False, nascosto completamente Excel (programma + foglio di lavoro) ed al termine rivisualizzato il tutto con un effetto poco professionale purtroppo sarebbe bello poter caricare un foglio di lavoro Hidden Poi, ho provato ThisWorkbooks.Saved = True per evitare la richiesta di salvataggio e funziona solo se il foglio di excel non viene aperto in una finestra di Internet Explorer che casotto !!! |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
dunque, per il primo punto ti scrivo il codice che io utilizzo generalmente.
Set dati = New Excel.Application dati.Workbooks.Open <path\nome_file> dati.Visible = False dati.ScreenUpdating = False ... operazioni sull'applicazione "dati" Questo codice non mi apre nessuna finestra, tutto viene eseguito in background. Per il secondo punto non ho esperienza di Internet Explorer, però anch'io utilizzo la proprietà Saved ma per poter chiudere il foglio di lavoro senza che mi mostri la finestra di salvataggio. Piuttosto non è che hai esperienza di Functions su Excel? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ho letto del tuo problema ma non ho mai richiamato Function o Sub in celle di Excel
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
almeno tu hai risolto?
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
purtroppo non come dico io
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
Mi dispiace. Comunque anche io faccio qualcosa che è simile a ciò che stai facendo tu. In pratica apro un file Excel (apro l'applicazione ed il foglio contemporaneamente), vi carico i dati dal db, lo salvo e lo chiudo senza che però venga mostrato alcunché a video (si tratta di un processo in background). Per questo non capisco come mai da te non funzioni...
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
aspetta, il mio è un lavoro leggermente diverso
Il file (A) che apre l'utente, contiene uno script VBA. Quando il file (A) viene aperto, apre un file (B) dal quale (A) eredita alcuni dati contenuti in (B) e li mostra all'utente. Tradotto in pratica: a) apro il file A che contiene la macro b) viene eseguita la macro A c) la macro apre il file B (sarebbe meglio se in background ma non mi riesce) d) durante il processo, alcuni dati del file B finiscono nel file A e) il file B si chiude senza chiedere niente all'utente f) il file A rimane aperto di modo che l'utente ne vede il risultato g) essendo ora stato modificato il file A dalla macro, Excel quando l'utente chiude il file A, chiede se salvare o meno il file in quanto è stato modificato (questo almeno in parte è stato risolto) il punto (c) è il più balordo in quanto se nascondo il foglio, la macro non riesce a trovare i dati in esso contenuti mah..... Ultima modifica di misterx : 31-07-2003 alle 14:53. |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
vediamo i punti:
c) hai provato a mettere prima dati.Visible = False poi dati.Workbooks.Open <> ed infine dati.ScreenUpdating = False? e, g) ho fatto così: dati.Windows("<Finestra_da_chiudere>").Close False fammi sapere |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
le ho provate un pò di tutte e penso che il mio problema stia nel far parlare le due Application
miofile = "dati.xls" Set dati = New Excel.Application dati.Visible = False dati.Workbooks.Open miofile For n = 1 To Sheets.Count Set mf = Worksheets(Sheets(n).Name) questa |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
scusa ma non capisco bene questa istruzione:
Set mf = Worksheets(Sheets(n).Name) sia worksheets che Sheets si riferiscono allo stesso workbook? |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
beh, si in quanto un semplice
Set mf = Sheets(n).Name non è sufficiente |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Jun 2001
Città: Cagliari
Messaggi: 48
|
certo, ma dovrebbe essere:
Set mf = ActiveWorkBook.Worksheets(WorkBooks("<l'altro>").Sheets(n).Name)) o qualcosa del genere, ma forse non ho capito ciò che vuoi fare cmq non ti posso aiutare in altro modo ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:47.



















