Salvare un foglio



  • NUOVA DISCUSSIONE CORRELATA: Salvare foglio excel tramite VBA
    Salvataggio files di Andrea
    Ciao a tutti!
    sto cercando di risolvere questo problema. dopo aver elaborato alcuni dati nel foglio3 della cartella cartl1 di excel, vorrei salvare i risultati ottenuti in una cartella del desktop, diciamo la cartella “archivio”.
    il lancio della macro che svolge tali operazioni dovrebbe avvenire dal foglio1 (anche se i dati elaborati si trovano nel foglio3).
    ciò di cui ho bisogno è una routine che io possa eventualmente richiamare da un’altra qualsiasi routine, per effettuare questo salvataggio ogni volta che ne ho bisogno e cioè prima di azzerare i dati di foglio3 e passare ad una successiva elaborazione.
    ho cercato di risolvere la questione provando con una macro da tastiera e osservando dopo il codice prodotto, ma ogni volta che la eseguo mi accorgo (con sgomento) che sparisce il codice vba che avevo scritto nell’editor di cartel1 (che è la cartella che utilizzo per elaborare i dati) mentre è presente nella copia inviata nella cartella archivio. non riesco a capire nè il codice vba da scrivere
    nè dove lo devo scrivere. qualcuno può aiutarmi?


    Ciao ! di Apoben64
    Nella sezione "scambio files" puoi trovare un file (andrea) che può fare al caso tuo e ovviamente lo dovrai adattare alle tue esigenze. ti permette di fare una copia del foglio 3 dove vuoi tu.
    con alt f8 o alt f11 può vedere il codice.
    un saluto luca

    di Andrea
    Grazie apo!
    ho analizzato con attenzione il tuo codice e ritengo di doverci fare ben pochi cambiamenti.
    una domanda. visto che la cartella di destinazione "archivio" (situata sul desktop) è fissa e che il nome con cui devo salvare di volta in volta il foglio3, pur essendo variabile, è sempre contenuto nella cella g1 del foglio3, ho la possibilità di automatizzare l'intera procedura (cioè senza passare per la finestra salva con nome ecc.)? in caso affermativo come dovrei modificare il codice che mi hai inviato? per ringraziarti, questa casella non ha abbastanza spazio. ---andrea

    Nuova soluzione di Apoben64
    Ciao! sostituisci il codice con questo , utilizzando copia e incolla  
    Sub SalvaFoglio()
    x = MsgBox("Vuoi creare una  del foglio 3 ?", vbYesNoCancel)
    If x = vbYes Then
    Sheets("Foglio3").Select
        ChDir "C:\Documents and Settings\Administrator\Desktop\Archivio"
        ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\Administrator\Desktop\Archivio\foglio3", _
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    End If
    End Sub

    di Andrea
    Ciao luca!
    alcuni commenti al codice che mi stai inviando:

    - se ho capito, il salvataggio nella cartella “archivio” del foglio3 (che, per inciso, appartiene alla cartella “elaborazioni xls”), avviene sempre con il nome “foglio3”. se leggi il mio post precedente, l’intenzione è di farlo salvare con il nome scritto nella cella g1 del foglio 3. poichè in g1 c’è sempre un nome diverso, nella cartella “archivio” avrei (auspicabilmente) files salvati con nomi diversi e quindi agevolmente rintracciabili;
    - eseguendo il codice ho notato che in “archivio” esso non salva solamente il foglio3, come vorrei, ma l’intera cartella “elaborazioni”, cosa che non desidero per evidenti motivi;
    - terminata l’operazione di salvataggio del foglio3 in “archivio”, la procedura dovrebbe concludersi tornando a visualizzare il foglio1 di “elaborazioni”. noto invece che visualizza il file appena salvato.

    sono certo che avrai capito il motivo di questa procedura. nel foglio3 di “elaborazioni xls” vanno a finire i risultati di una elaborazione fatta dal foglio1 della stessa cartella. se non archivio il foglio3 nel modo anzidetto e prima di effettuare una nuova elaborazione su altri dati, i risultati precedenti andrebbero dispersi.

    un saluto. ---andrea

    Ciao di Apoben64
    Prova a simulare quello che vuoi utilizzando il registratore di macro, così avrai i tuoi riferimenti precisi. dopodichè puoi copiarti il codice e incollarlo nel tuo file!

    di Andrea
    Già fatto, ma la macro da tastiera, e ti accorgeresti tu stesso se provassi, non riesce a simulare la routine che ti ho descritto.
    grazie cmq.

    Ciao ! di Andrea
    Non bisogna mai darsi per vinti ! vedrai che troviamo un soluzione!. peraltro la simulazione del registratore di macro è solo un modo che ci aiuta per avere un codice o traccia o indicazione su cui lavorare ; ad esempio non mi dirai che usando il registratore di macro e non si possa trovare il codice per salvare solo il foglio 3, se poi il salvataggio del foglio debba avvenire secondo dei parametri questo include altri aspetti , di cui potrò solo affrontare da lunedì , essendo fuori per un congresso .
    buon weekend !
    p.s. rispondo anche a fabio22

    Proviamo di Apoben64
    Guarda se questa soluzione può andarti bene , poi andiamo avanti. 
    ub Salva()
        Sheets("Foglio3").Select
        ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Administrator\Desktop\Archivio\" _ 
    & Range("G1").Value & ".xls", _
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    
            Range("A1").Select
    End Sub

    Solo il foglio3 di Apoben64
    Questo codice solo per copiare il foglio3.

     
    Sub Copia()
    Sheets("Foglio3").Copy
        ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Administrator\Desktop\Archivio\" _ 
    & Range("G1").Value & ".xls"
    End Sub
    

    Ringraziamento di Andrea
    Ieri, ti ringraziavo per i codici che mi hai inviato. evidentemente, per l'errore di sistema che hai segnalato il post non è stato pubblicato.
    ti ringrazio ancora. a risentirci. andrea

    Per andrea di Apoben64
    Ti pregherei di ripubblicare il tuo post che se non ricordo male , riguardava l'importazione di dati da database. grazie e a presto. luca