{"id":1119,"date":"2014-04-03T11:56:55","date_gmt":"2014-04-03T09:56:55","guid":{"rendered":"http:\/\/www.office-guru.com\/wordpress\/?p=1119"},"modified":"2014-04-12T17:32:56","modified_gmt":"2014-04-12T15:32:56","slug":"salvataggio-periodico","status":"publish","type":"post","link":"https:\/\/www.office-guru.com\/wordpress\/2014\/04\/salvataggio-periodico\/","title":{"rendered":"046. Salvataggio periodico file"},"content":{"rendered":"<div style=text-align:right;><a class=\"wpptopdfenh\" target=\"_blank\" rel=\"noindex,nofollow\" href=\"https:\/\/www.office-guru.com\/wordpress\/2014\/04\/salvataggio-periodico\/?format=pdf\" title=\"Download PDF\"><img alt=\"Download PDF\" src=\"https:\/\/i0.wp.com\/www.office-guru.com\/wordpress\/wp-content\/plugins\/wp-post-to-pdf-enhanced\/asset\/images\/pdf.png?w=584\" data-recalc-dims=\"1\"><\/a><\/div><p>Domanda:<\/p>\n<p>E\u2019 possibile tramite una macro creare ad intervalli temporali definiti una copia del file su cui st\u00f2 lavorando e salvarla sul computer?<\/p>\n<p>Risposta:<\/p>\n<p>Questa esigenza era stata risolta da Andrea nell\u2019articolo che trovate al link:<br \/>\n<a href=\"http:\/\/terzaghi.blogspot.it\/2008\/02\/salvataggio-automatico-di-un-foglio-di.html\" target=\"_blank\">http:\/\/terzaghi.blogspot.it\/2008\/02\/salvataggio-automatico-di-un-foglio-di.html<\/a><\/p>\n<p>Ho ripreso il suo codice apportando alcune modifiche in quanto era stato creato nel 2008<br \/>\nquando la versione pi\u00f9 diffusa di Excel era quella del 2003.<\/p>\n<p><!--more-->Veniamo al codice:<br \/>\nPremendo sul bottone \u201cINIZIO\u201d la routine \u201cAccedi\u201d, imposta a True (Vero) la variabile \u201cAttivo\u201d<br \/>\ne poi lancia ma routine \u201cSavePeriodic\u201d che opera dopo avere verificato che il valore della variabile \u201cAttivo\u201d sia TRUE<br \/>\n(If Attivo Then\u00a0 &gt;&gt;&gt; TRUE \u00e8 il valore di default)<\/p>\n<p>Viene assegnato in una variabile il percorso del file exel attivo:<\/p>\n<pre> PercorsoOrigine = ActiveWorkbook.Path<\/pre>\n<p>ed ad un\u2019altra il suo nome<\/p>\n<pre> NomeFileOrigine = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, \".\") - 1)<\/pre>\n<p>Per evitare di inserire nel nome l\u2019estensione del file (.xls o .xlsx),<br \/>\ncon la funzione <strong>InStrRev<\/strong> cerco la posizione del carattere \u201c.\u201d nel nome del file che comprende l\u2019estensione e la utilizzo per prendere estrarre la parte sinistra del nome del file per un numero di caratteri pari al risultato della funzione InStrRev, -1<\/p>\n<p>Il nome della copia del file, conterr\u00e0 il nome del file originale pi\u00f9 data ed orario del salvataggio:<\/p>\n<pre style=\"width: 675px;height: 16px\"> NomeFileDestinazione = NomeFileOrigine &amp; \" (\" &amp; Format(O.Cells(10, 7).Value, \"dd-mm-yy h.mm.ss\") &amp; \")\"<\/pre>\n<p>dove O.Cells(10, 7) \u00e8 l\u2019orario che la macro assegna e scrive nella cella G10 del foglio \u201cSalvataggio Automatico\u201d<\/p>\n<p>Il percorso dove sar\u00e0 salvato il file \u00e8 definito dall\u2019istruzione:<\/p>\n<pre> PercorsoDestinazione = PercorsoOrigine &amp; \"\\\"<\/pre>\n<p>Nel file d&#8217;esempio \u00e8 lo stesso del file orignale, e volete potete modificarlo a vostro piacimento, ad esempio come:<\/p>\n<p>PercorsoDestinazione =\u201dC:\\Mia Cartella\\\u201d<\/p>\n<p>Veniamo alla modifica da me apportata.<br \/>\nNella macro orignale tutti i file venivano salvati con estensione \u201c.xls\u201d,<br \/>\ncol il seguente codice invece, individuo la versione del file excel attivo che deve essere salvato,<br \/>\nla assegno come valore della variabile \u201cFileExtStr\u201d che utilizzo nella macro che salva il file:<\/p>\n<pre>Set Destwb = ActiveWorkbook\r\n\r\nWith Destwb\r\n\r\nIf Val(Application.Version) &lt; 12 Then\r\n\r\n'se il file \u00e8 in versione Excel 97-2003\r\n\r\nFileExtStr = \".xls\": FileFormatNum = -4143\r\n\r\nElse\r\n\r\n'se il file \u00e8 in versione 2007-2013\r\n\r\nSelect Case Sourcewb.FileFormat\r\n\r\nCase 51: FileExtStr = \".xlsx\": FileFormatNum = 51\r\n\r\nCase 52:\r\n\r\nIf .HasVBProject Then\r\n\r\nFileExtStr = \".xlsm\": FileFormatNum = 52\r\n\r\nElse\r\n\r\nFileExtStr = \".xlsx\": FileFormatNum = 51\r\n\r\nEnd If\r\n\r\nCase 56: FileExtStr = \".xls\": FileFormatNum = 56\r\n\r\nCase Else: FileExtStr = \".xlsb\": FileFormatNum = 50\r\n\r\nEnd Select\r\n\r\nEnd If\r\n\r\nEnd With<\/pre>\n<pre>With Destwb\r\n\r\n.SaveAs PercorsoDestinazione &amp; NomeFileDestinazione &amp; FileExtStr, FileFormat:=FileFormatNum\r\n\r\n.Close SaveChanges:=True\r\n\r\nEnd With<\/pre>\n<p>Utilizzo il codice \u201cApplication.DisplayAlerts = False\u201d per inabilitare eventuali finestre che richiedono un check di compatibilit\u00e0 delle versioni.<\/p>\n<p>Eseguito il salvataggio riabilito l\u2019apertura delle finestre di dialogo (Application.DisplayAlerts = True)<\/p>\n<p>Questa istruzioni vengo ripetute ad intervalli definiti dal valore della cella \u201cG5\u201d del foglio \u201cSalvataggio Automatico\u201d (O.Cells(5, 7).Value)\u00a0attraverso le seguenti instruzioni:<\/p>\n<pre>DoEvents\r\n\r\nMinuti = O.Cells(5, 7).Value\r\ntempo = \"00:\" + Format(Minuti, \"0#\") + \":00\"\r\ndTime = Now + TimeValue(tempo) 'Add another second to dTime\r\nO.Cells(10, 7).Value = Now + TimeValue(tempo)\r\nApplication.OnTime dTime, \"SavePeriodic\" 'Call SavePeriodic procedure again<\/pre>\n<p>La ripetizione della macro viene bloccata prendendo il tasto \u201cFine\u201d del foglio \u201cSalvataggio Automatico\u201d<\/p>\n<p>A voi il file:<br \/>\n<a href=\"http:\/\/www.office-guru.com\/wordpress\/?attachment_id=1121\/\u200e\">APRI<\/a><\/p>\n<p>Riccardo Vincenti<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Domanda: E\u2019 possibile tramite una macro creare ad intervalli temporali definiti una copia del file su cui st\u00f2 lavorando e salvarla sul computer? Risposta: Questa esigenza era stata risolta da Andrea nell\u2019articolo che trovate al link: http:\/\/terzaghi.blogspot.it\/2008\/02\/salvataggio-automatico-di-un-foglio-di.html Ho ripreso il &hellip; <a href=\"https:\/\/www.office-guru.com\/wordpress\/2014\/04\/salvataggio-periodico\/\">Continua a leggere<span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"_links_to":"","_links_to_target":""},"categories":[13,6],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p39IU1-i3","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":652,"url":"https:\/\/www.office-guru.com\/wordpress\/2013\/06\/salvataggio-solo-foglio-attivo\/","url_meta":{"origin":1119,"position":0},"title":"Salvataggio del solo foglio attivo","date":"3 Giugno 2013","format":false,"excerpt":"Domanda: Avrei bisogno di aiuto avrei la necessit\u00e0 di salvare il foglio attivo dove tramite macro ho gi\u00e0 provveduto ad incollare delle cose, il problema \u00e8 che mi salva l\u2019intera cartella e non solo il folglio in questione ho provato sia con ActiveSheet.SaveAs che con ActiveworkBook.saveas ma salva sempre l\u2019intera\u2026","rel":"","context":"In &quot;Domande Lettori&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":829,"url":"https:\/\/www.office-guru.com\/wordpress\/2014\/01\/selezione-file-tramite-finestra-di-dialogo\/","url_meta":{"origin":1119,"position":1},"title":"029. Selezione File tramite finestra di dialogo","date":"16 Gennaio 2014","format":false,"excerpt":"Domanda: Ho una macro che per eseguire le varie operazioni previste necessita dell\u2019apertura di pi\u00f9 file ogni volta di nome diverso. Avrei pertanto bisogno di creare una MsgBox all\u2019interno della macro per selezionare i file che devono essere uitilizzati.\u00a0 Ringrazio in anticipo per la Vostra attenzione. Risposta: Per selezionare un\u2026","rel":"","context":"In &quot;Domande Lettori&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":873,"url":"https:\/\/www.office-guru.com\/wordpress\/2014\/01\/archivio-con-fotografie-degli-articoli\/","url_meta":{"origin":1119,"position":2},"title":"035. Archivio con Fotografie degli articoli","date":"22 Gennaio 2014","format":false,"excerpt":"Damanda: devo associare la foto in formato jpg di una regione italiana quando nella descrizione di un vino compare il nome di quella regione. naturalmente ci sono 20 regioni + alcune nazioni x i vini esteri e le immagini devono comparire iu una cella con il risultato di un cerca\u2026","rel":"","context":"In &quot;Excel&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":752,"url":"https:\/\/www.office-guru.com\/wordpress\/2013\/10\/estrarre-dati-da-cartelle-e-files-chiusi\/","url_meta":{"origin":1119,"position":3},"title":"026. Estrarre dati da cartelle e files chiusi","date":"19 Ottobre 2013","format":false,"excerpt":"Domanda: Sono alla ricerca di una macro vba che mi permetta di andare a leggere dei dati su foglio 1 di excel di varie cartelle di una cartella denominata Magazzino Magazzino \/abete\/1098.xls\/foglio1 \/abete\/1099.xls\/foglio1 \/acero\/2097.xls\/foglio1 \/acero\/2120.xls\/foglio1 ecc. Dovrei sommare in un nuovo foglio i valori contenuti nei vari foglio1 dell'elenco ad\u2026","rel":"","context":"In &quot;Domande Lettori&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":914,"url":"https:\/\/www.office-guru.com\/wordpress\/2014\/01\/archivio-con-fotografie-degli-articoli-ciclare-sugli-oggetti-immagine\/","url_meta":{"origin":1119,"position":4},"title":"038. Archivio con Fotografie degli articoli &#8211; Ciclare sugli oggetti Immagine","date":"29 Gennaio 2014","format":false,"excerpt":"Questo articolo fa riferimento alla domada dell'articolo \"Archivio con Fotografie degli articoli\" Il lettore mi ha mandato il file originale dove voleva inserire le immagini ed ho modifcato il codice precedentemente scritto per adattarlo al suo specifico caso: 14 foto\u00a0divise in 2 colonne\u00a0da popolare contemporaneamente. Ho cos\u00ec risolto inserendo: -\u2026","rel":"","context":"In &quot;Domande Lettori&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":673,"url":"https:\/\/www.office-guru.com\/wordpress\/2013\/08\/selezionare-una-variabile-composta-da-parte-letterale-e-parte-numerica\/","url_meta":{"origin":1119,"position":5},"title":"Selezionare una variabile composta da parte letterale e parte numerica","date":"5 Agosto 2013","format":false,"excerpt":"Domanda: Fabio: Ciao, ho necessit\u00e0 di inserire all\u2019interno di una variabile il valore contenuto in un\u2019altra variabile che fa parte di un gruppo di variabili composte da una parte letterale e da una numerica. esempio, voglio costruire parole casuali, inserisco le lettere dell\u2019alfabeto in variabili che chiamer\u00f2 da L1 ad\u2026","rel":"","context":"In &quot;Domande Lettori&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/www.office-guru.com\/wordpress\/wp-content\/uploads\/2013\/08\/parola_casuale.gif?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/posts\/1119"}],"collection":[{"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1119"}],"version-history":[{"count":5,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/posts\/1119\/revisions"}],"predecessor-version":[{"id":1232,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/posts\/1119\/revisions\/1232"}],"wp:attachment":[{"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.office-guru.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}