evitare messagio dopo la close
Hai un problema con Excel? 
evitare messagio dopo la close
di cicci943 data: 10/02/2013 20:07:57
all'interno di una macro ho la seguente istruzione:
ActiveWindows.Close False
succede che dopo l'esecuzione di questa istruzione la macro si interrompe in quanto mi appare la maschera dove mi segnala che gli
appunti contengono una grande quantita' di informazioni. Conservarle per incollarle in seguito?
io naturalmente rispondo di si(in quanto so che effettivamente gli appunti contengono molti dati che devo incollare in un altro modulo che si trova in altra cartella)
dopo che rispondo si la macro continua fino al termine.
come si puo' evitare che appaia la maschera per confermare? e comunque
mi consenta di tenere i dati neglli appunti? e quindi eseguire la macro senza interruzioni?
grazie per l'aiuto.
di Vecchio Frac data: 10/02/2013 21:18:36
L'unico modo che io conosca per salvare il contenuto degli Appunti e contemporaneamente uscire dal Workbook corrente è salvarlo:
ActiveWorkbook.Close True
Ma poichè la tua istruzione tenta di chiudere l'oggetto corrente senza salvarlo, anzi impedendone espressamente il salvataggio, l'unico modo che hai per salvare gli appunti è rispondere manualmente Sì alla successiva richiesta (ho provato con SendKeys a inviare "S" ma non ottengo risultati soddisfacenti: la finestrella si chiude ma gli appunti vengono persi).
di Vecchio Frac data: 10/02/2013 21:26:25
Bè faccio una piccola correzione alla mia affermazione... un metodo ci sarebbe:
Application.DisplayAlerts = False
ActiveWindow.Close False
In pratica disabilitando gli avvisi riesci a chiudere tutto salvando il contenuto degli appunti (ma solo perchè la risposta "Sì" è attiva per default). Pratica sconsigliata dai più, ma dovrebbe funzionare.
evitare messaggio dopo la close
di cicci943 data: 11/02/2013 15:09:15
ho inserito l'istruzione che mi hai consigliato; non funziona, anzi segnala l'errore di run-time 438(proprieta' o metodo non supportati dall'oggetto) ti invio il codice della macro per controllare se ho inserito l'istruzione nel posto giusto; quello che non capisco e' perche' se incollo o copio poche riche non richiede la conferma. e' una questione di spazio degli appunti windows? se si come si puo' incrementare questo spazio?
grazie . ciao
Sub importadati()
'
' questa macro provvede ad importare in questo modulo i dati che si trovano
' nella cartella lavori in excel
' importadati Macro
'
' SONO DENTRO LA CARTELLA DOVE IMPORTERO' I DATI QUINDI PENSO A CANCELLARE I VECCHI DATI
Range("A8:H401").Select
Selection.ClearContents
Range("A8").Select
' DOPO AVER CANCELLATO I DATI CLICCO PER MINIMIZZARE LA CARTELLA CORRENTE
Application.WindowState = xlMinimized
' L'ISTRUZIONE SUCCESSIVA APRE IL FILE CHE SI TROVA IN UN ALTRA CARTELLA
' Workbooks.Open Filename:="C:UsersLaPalmaDesktopSEGRETERIALAVORI IN EXCELCONTABILITA' INCASSI S.C. E GESTIONE DATI ANAGRAFICI.XLSM"
Workbooks.Open Filename:="C:UsersutenteDesktopLAVORI IN EXCELCONTABILITA' INCASSI S.C. E GESTIONE DATI ANAGRAFICI.XLSM"
' MI POSIZIONO NEL FOGLIO CHE CONTIENE I DATI
Sheets("BASE DATI").Select
' FILTRO I NOMINATIVI CHE INTERESSANO
ActiveSheet.Range("$A$7:$N$410").AutoFilter Field:=5, Criteria1:=Array("A", _
"E", "G", "P.A.", "P.P.A.", "P.S.A.", "P.T.A."), Operator:=xlFilterValues
' SELEZIONO LA ZONA CHE DEVO COPIARE NEL FOGLIO DELL'ALTRA CARTELLA
Range("A8:A401").Select
Selection.Copy
' L'ISTRUZIONE SUCCESSIVA SERVE A CHIUDERE LA CARTELLA CORRENTE SENZA RICHIEDERE
' IL SALVATAGGIO
' qui ho inserito l'istruzione ===================attenzione!!!!!!
' Application.DisplayAlert = False
ActiveWindow.Close False
' dopo questa istruzione mi appare la maschera di conferma degli appunti==========
' MI RIPOSIZIONO NELLA CARTELLA DI ORGINE E INCOLLO i nominativi
' Windows("elenchisc.xlsm").Activate
Sheets("originedati").Select
ActiveSheet.Paste
Application.CutCopyMode = False
' L'ISTRUZIONE SUCCESSIVA riAPRE IL FILE CHE SI TROVA IN UN ALTRA CARTELLA
' Workbooks.Open Filename:="C:UsersLaPalmaDesktopSEGRETERIALAVORI IN EXCELCONTABILITA' INCASSI S.C. E GESTIONE DATI ANAGRAFICI.XLSM"
Workbooks.Open Filename:="C:UsersutenteDesktopLAVORI IN EXCELCONTABILITA' INCASSI S.C. E GESTIONE DATI ANAGRAFICI.XLSM"
' MI POSIZIONO NEL FOGLIO CHE CONTIENE I DATI
Sheets("BASE DATI").Select
' FILTRO I NOMINATIVI CHE INTERESSANO
ActiveSheet.Range("$A$7:$N$410").AutoFilter Field:=5, Criteria1:=Array("A", _
"E", "G", "P.A.", "P.P.A.", "P.S.A.", "P.T.A."), Operator:=xlFilterValues
' SELEZIONO LA ZONA CHE DEVO COPIARE NEL FOGLIO DELL'ALTRA CARTELLA
Range("D8:J401").Select
Selection.Copy
' L'ISTRUZIONE SUCCESSIVA SERVE A CHIUDERE LA CARTELLA CORRENTE SENZA RICHIEDERE
' IL SALVATAGGIO
' Application.DisplayAlert = False
ActiveWindow.Close False
' MI RIPOSIZIONO NELLA CARTELLA DI ORGINE E INCOLLO
' Windows("elenchisc.xlsm").Activate
Sheets("originedati").Select
Range("B8").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A8").Select
ActiveWorkbook.Save
Application.WindowState = xlMaximized
End Sub
' QUESTA MACRO SERVE PER TRASFERIRE DEI DATI DA UNA CARTELLA DI LAVORO EXCEL AD UN'ALTRA CARTELLA EXCEL
' CHE SI TROVA ALL'INTERNO DI UN'ALTRA CARTELLA.
|
di rita (utente non iscritto) data: 12/02/2013 13:46:31
Da ignorante quale posso essere mi sa che il range di copia di una zona filtrata non gli piace molto
Vuoi Approfondire?