evitare messagio dopo la close



  • 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