Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Invio dati da foglio excel a pagina web ad ogni modifica

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 04/02/21 17:34

Anthony47 ha scritto:Ma in fatti io ti avevo detto: "salvi in un nuovo file le cose che ti interessano e poi salvi come pagina web questo nuovo file". Che poi sia "salva come pagina web" o "Publish" la cosa e' la stessa

Ciao


Mi piacerebbe guardare in tal senso, sperando di non averti fatto lavorare fino ad ora per nulla.. unica cosa non capisco come potrei fare ciò che dici :roll:

Ad ogni modo oggi è iniziato il testing del file e man mano ti riporterò gli errori che si presenteranno nel tempo.
Per ora questo:
Codice: Seleziona tutto
04/02/2021 17:01:19          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          04/02/2021 17:01:19         04/02/2021 17:02:21
Eseguo MacroOneMin          04/02/2021 17:02:22         04/02/2021 17:03:24
04/02/2021 17:02:25         $I$44
04/0Eseguo MacroOneMin      04/02/2021 16:46:14         04/02/2021 16:47:16
2/2021 16:45:11          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          04/02/2021 16:45:11         04/02/2021 16:46:13
Eseguo MacroOneMin          04/02/2021 16:47:18         04/02/2021 16:48:20
Eseguo Macro15Min           04/02/2021 16:58:08         04/02/2021 17:12:08
04/02/2021 16:59:11          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          04/02/2021 16:59:11         04/02/2021 17:00:13
Eseguo MacroOneMin          04/02/2021 17:00:15         04/02/2021 17:01:17
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 04/02/21 20:47

Anthony47 ha scritto:Puoi infatti usare il salvataggio in formato "Pagine web" (htm /html), che crea un file htm principale + una directory di file di supporto; il file e la directory vanno caricate sul server web del tuo dominio, da cui il file htm principale puo' essere visualizzato via browser.

Ovviamente devi lavorare (in ufficio) con il file principale che all'occorrenza copia quel che serve su un nuovo file di servizio, di uno o piu' fogli, che e' quello che salverai in formato "Pagine web" prima di chiuderlo.
La stessa macro che crea il file di servizio, lo salva e lo chiude, deve avviare e gestire l'upload al server.

Rileggendo lo scambio dei vari posts ho ritrovato questo.. quello che dicevi.. sarò sincero non ho la più pallida idea di come fare una cosa del genere.. perciò avevo optato per una soluzione più alla mia portata, diversamente mi vedo costretto nel perdurare a scocciarti :roll:
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 04/02/21 21:50

Continuando a rileggere troverai una bozza di macro che copia qualcosa dal file di lavoro in un nuovo file creato, e poi lo salva in pagina web; qui: viewtopic.php?f=26&t=111786#p656860

Invece di "Salva come pagina web" va anche bene usare il Publish (come fatto dal tuo codice, solo applicandolo al nuovo activeworkbook e al suo Foglio1)

Credo di aver capito il motivo di quei blackout: l'operatore che dorme davanti alla tastiera; cioe' comincia a scrivere qualcosa ma rimane in edit per tutto quel tempo. durante la fase di edit/input infatti il vba si congela.
Mentre non si puo' fare molto per chi dorme davanti alla tastiera, se non spiegargli quel che (non)succede durante le sue sospensioni, bisogna invece prevenire doppie schedulazioni: es se la OneMinuteMacro si sospende per lungo tempo, quanto basta da far arrivare il tempo anche della Macro15Min, e la Macro15Min si attivasse prima della OneMinuteMacro (cosa che in realta' e' avvenuto, a guardare i debug che hai pubblicato) allora la Macro15Min pensa che la OneMinuteMacro si sia perduta e la riavvia, ma subito dopo la OneMinuteMacro si esegue e rischedula da sola.
Per rimediare bisogna, su tutte le macro, fermare una eventuale schedulazione attiva prima di procedere con la nuova. Si puo' fare aggiungendo questo blocco in questa posizione:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***

Ovviamente bisogna personalizzare la riga marcata <<< personalizzare, usando per ogni macro il suo timer e il nome della macro da fermare, che sono quelli usati nella riga marcata ***

Ma intanto l'upload sta funzionando? verso il server web, intendo

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 06:46

Anthony47 ha scritto:Continuando a rileggere troverai una bozza di macro che copia qualcosa dal file di lavoro in un nuovo file creato, e poi lo salva in pagina web; qui: viewtopic.php?f=26&t=111786#p656860

Invece di "Salva come pagina web" va anche bene usare il Publish (come fatto dal tuo codice, solo applicandolo al nuovo activeworkbook e al suo Foglio1)

Credo di aver capito il motivo di quei blackout: l'operatore che dorme davanti alla tastiera; cioe' comincia a scrivere qualcosa ma rimane in edit per tutto quel tempo. durante la fase di edit/input infatti il vba si congela.
Mentre non si puo' fare molto per chi dorme davanti alla tastiera, se non spiegargli quel che (non)succede durante le sue sospensioni, bisogna invece prevenire doppie schedulazioni: es se la OneMinuteMacro si sospende per lungo tempo, quanto basta da far arrivare il tempo anche della Macro15Min, e la Macro15Min si attivasse prima della OneMinuteMacro (cosa che in realta' e' avvenuto, a guardare i debug che hai pubblicato) allora la Macro15Min pensa che la OneMinuteMacro si sia perduta e la riavvia, ma subito dopo la OneMinuteMacro si esegue e rischedula da sola.
Per rimediare bisogna, su tutte le macro, fermare una eventuale schedulazione attiva prima di procedere con la nuova. Si puo' fare aggiungendo questo blocco in questa posizione:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***

Ovviamente bisogna personalizzare la riga marcata <<< personalizzare, usando per ogni macro il suo timer e il nome della macro da fermare, che sono quelli usati nella riga marcata ***

Ma intanto l'upload sta funzionando? verso il server web, intendo

Ciao

Si si.. ftpbox funziona perfettamente, sebbene io stia utilizzando solo la versione portable, che a volte si inchioda. La auto shedulazione parte dopo qualche min e ogni volta che tutto funziona come deve, le modifiche appaiono.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 10:42

Ancora non ho fatto le modifiche da te indicate.. intanto ti riporto di seguito gli errori di oggi:
Codice: Seleziona tutto
05/02/2021 08:06:10         $I$12
Eseguo MacroOneMin          05/02/2021 08:06:52         05/02/2021 08:07:54
Eseguo MacroOneMin          05/02/2021 08:07:59         05/02/2021 08:09:01
Eseguo Macro15Min           05/02/2021 08:08:33         05/02/2021 08:22:33
Eseguo MacroOneMin          05/02/2021 08:09:03         05/02/2021 08:10:05
05/02/2021 08:09:38         $I$13
Eseguo MacroOneMin          05/02/2021 08:10:07         05/02/2021 08:11:09
Eseguo MacroOneMin          05/02/2021 08:11:10         05/02/2021 08:12:12
Eseguo MacroOneMin          05/02/2021 08:12:14         05/02/2021 08:13:16
Eseguo MacroOneMin          05/02/2021 08:13:18         05/02/2021 08:14:20
Eseguo MacroOneMin          05/02/2021 08:14:21         05/02/2021 08:15:23
05/02/2021 08:14:34         $I$14
Eseguo MacroOneMin          05/02/2021 08:15:24         05/02/2021 08:16:26
Eseguo MacroOneMin          05/02/2021 08:16:28         05/02/2021 08:17:30
05/02/2021 08:17:35          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 08:17:35         05/02/2021 08:18:37
05/02/2021 08:18:11         $I$15
05/02/2021 08:18:38          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 08:18:38         05/02/2021 08:19:40
Eseguo MacroOneMin          05/02/2021 08:19:42         05/02/2021 08:20:44
Eseguo MacroOneMin          05/02/2021 08:20:46         05/02/2021 08:21:48
Eseguo MacroOneMin          05/02/2021 08:21:50         05/02/2021 08:22:52
Eseguo Macro15Min           05/02/2021 08:22:33         05/02/2021 08:36:33
05/02/2021 08:22:45         $I$16
Eseguo MacroOneMin          05/02/2021 08:22:53         05/02/2021 08:23:55
Eseguo MacroOneMin          05/02/2021 08:23:57         05/02/2021 08:24:59
Eseguo MacroOneMin          05/02/2021 08:25:00         05/02/2021 08:26:02
Eseguo Macro60Min           05/02/2021 08:25:29         05/02/2021 09:24:29
Eseguo MacroOneMin          05/02/2021 08:26:03         05/02/2021 08:27:05
05/02/2021 08:26:10         $K$7
05/02/2021 08:26:17         $L$7
Eseguo Macro30Min           05/02/2021 08:26:29         05/02/2021 08:56:29
05/02/2021 08:26:47         $I$17
Eseguo MacroOneMin          05/02/2021 08:27:06         05/02/2021 08:28:08
Eseguo MacroOneMin          05/02/2021 08:28:09         05/02/2021 08:29:11
Eseguo MacroOneMin          05/02/2021 08:29:13         05/02/2021 08:30:15
Eseguo MacroOneMin          05/02/2021 08:30:17         05/02/2021 08:31:19
Eseguo MacroOneMin          05/02/2021 08:31:21         05/02/2021 08:32:23
Eseguo MacroOneMin          05/02/2021 08:32:25         05/02/2021 08:33:27
05/02/2021 08:32:36         $K$3
05/02/2021 08:32:44         $L$3
Eseguo MacroOneMin          05/02/2021 08:33:29         05/02/2021 08:34:31
Eseguo MacroOneMin          05/02/2021 08:34:32         05/02/2021 08:35:34
Eseguo MacroOneMin          05/02/2021 08:35:36         05/02/2021 08:36:38
Eseguo Macro15Min           05/02/2021 08:36:33         05/02/2021 08:50:33
05/02/2021 08:36:33         $K$2
Eseguo MacroOneMin          05/02/2021 08:36:39         05/02/2021 08:37:41
05/02/2021 08:36:43         $L$2
Eseguo MacroOneMin          05/02/2021 08:37:42         05/02/2021 08:38:44
Eseguo MacroOneMin          05/02/2021 08:38:45         05/02/2021 08:39:47
Eseguo MacroOneMin          05/02/2021 08:39:49         05/02/2021 08:40:51
Eseguo MacroOneMin          05/02/2021 08:40:53         05/02/2021 08:41:55
Eseguo MacroOneMin          05/02/2021 08:41:57         05/02/2021 08:42:59
Eseguo MacroOneMin          05/02/2021 08:43:01         05/02/2021 08:44:03
Eseguo MacroOneMin          05/02/2021 08:44:05         05/02/2021 08:45:07
Eseguo MacroOneMin          05/02/2021 08:45:09         05/02/2021 08:46:11
05/02/2021 08:45:52         $I$18
Eseguo MacroOneMin          05/02/2021 08:46:13         05/02/2021 08:47:15
05/02/2021 08:46:23         $K$9
05/02/2021 08:46:36         $L$9
Eseguo MacroOneMin          05/02/2021 08:47:16         05/02/2021 08:48:18
Eseguo MacroOneMin          05/02/2021 08:48:19         05/02/2021 08:49:21
Eseguo MacroOneMin          05/02/2021 08:49:23         05/02/2021 08:50:25
Eseguo MacroOneMin          05/02/2021 08:50:27         05/02/2021 08:51:29
Eseguo Macro15Min           05/02/2021 08:50:33         05/02/2021 09:04:33
Eseguo MacroOneMin          05/02/2021 08:51:31         05/02/2021 08:52:33
Eseguo MacroOneMin          05/02/2021 08:52:35         05/02/2021 08:53:37
Eseguo MacroOneMin          05/02/2021 08:53:39         05/02/2021 08:54:41
Eseguo MacroOneMin          05/02/2021 08:54:43         05/02/2021 08:55:45
Eseguo MacroOneMin          05/02/2021 08:55:47         05/02/2021 08:56:49
Eseguo Macro30Min           05/02/2021 08:56:44         05/02/2021 09:26:44
05/02/2021 08:56:47         $I$19
Eseguo MacroOneMin          05/02/2021 08:56:51         05/02/2021 08:57:53
Eseguo MacroOneMin          05/02/2021 08:57:55         05/02/2021 08:58:57
Eseguo MacroOneMin          05/02/2021 08:58:59         05/02/2021 09:00:01
05/02/2021 08:59:07         $K$8
05/02/2021 08:59:12         $L$8
Eseguo MacroOneMin          05/02/2021 09:00:02         05/02/2021 09:01:04
05/02/2021 09:01:05          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:01:05         05/02/2021 09:02:07
Eseguo MacroOneMin          05/02/2021 09:02:09         05/02/2021 09:03:11
05/02/2021 09:02:48         $K$4
05/02/2021 09:02:57         $L$4
Eseguo MacroOneMin          05/02/2021 09:03:13         05/02/2021 09:04:15
Eseguo MacroOneMin          05/02/2021 09:04:17         05/02/2021 09:05:19
Eseguo Macro15Min           05/02/2021 09:04:33         05/02/2021 09:18:33
Eseguo MacroOneMin          05/02/2021 09:05:21         05/02/2021 09:06:23
Eseguo MacroOneMin          05/02/2021 09:06:25         05/02/2021 09:07:27
Eseguo MacroOneMin          05/02/2021 09:07:29         05/02/2021 09:08:31
05/02/2021 09:08:12         $K$5
05/02/2021 09:08:17         $L$5
Eseguo MacroOneMin          05/02/2021 09:08:33         05/02/2021 09:09:35
Eseguo MacroOneMin          05/02/2021 09:09:37         05/02/2021 09:10:39
05/02/2021 09:10:05         $K$6
05/02/2021 09:10:08         $L$6
Eseguo MacroOneMin          05/02/2021 09:10:40         05/02/2021 09:11:42
Eseguo MacroOneMin          05/02/2021 09:11:44         05/02/2021 09:12:46
Eseguo MacroOneMin          05/02/2021 09:12:47         05/02/2021 09:13:49
Eseguo MacroOneMin          05/02/2021 09:13:51         05/02/2021 09:14:53
Eseguo MacroOneMin          05/02/2021 09:14:54         05/02/2021 09:15:56
05/02/2021 09:15:02         $K$17
05/02/2021 09:15:06         $L$17
05/02/2021 09:15:17         $I$20
Eseguo MacroOneMin          05/02/2021 09:15:57         05/02/2021 09:16:59
Eseguo MacroOneMin          05/02/2021 09:17:01         05/02/2021 09:18:03
Eseguo MacroOneMin          05/02/2021 09:18:05         05/02/2021 09:19:07
Eseguo Macro15Min           05/02/2021 09:18:33         05/02/2021 09:32:33
05/02/2021 09:18:42         $K$12
05/02/2021 09:18:49         $L$12
Eseguo MacroOneMin          05/02/2021 09:19:08         05/02/2021 09:20:10
Eseguo MacroOneMin          05/02/2021 09:20:11         05/02/2021 09:21:13
Eseguo MacroOneMin          05/02/2021 09:21:14         05/02/2021 09:22:16
Eseguo MacroOneMin          05/02/2021 09:22:18         05/02/2021 09:23:20
Eseguo MacroOneMin          05/02/2021 09:23:22         05/02/2021 09:24:24
Eseguo MacroOneMin          05/02/2021 09:24:26         05/02/2021 09:25:28
Eseguo Macro60Min           05/02/2021 09:24:29         05/02/2021 10:23:29
Eseguo MacroOneMin          05/02/2021 09:25:30         05/02/2021 09:26:32
Eseguo MacroOneMin          05/02/2021 09:26:34         05/02/2021 09:27:36
Eseguo Macro30Min           05/02/2021 09:26:44         05/02/2021 09:56:44
Eseguo MacroOneMin          05/02/2021 09:27:38         05/02/2021 09:28:40
Eseguo MacroOneMin          05/02/2021 09:28:42         05/02/2021 09:29:44
Eseguo MacroOneMin          05/02/2021 09:29:46         05/02/2021 09:30:48
Eseguo MacroOneMin          05/02/2021 09:30:50         05/02/2021 09:31:52
Eseguo MacroOneMin          05/02/2021 09:31:54         05/02/2021 09:32:56
Eseguo Macro15Min           05/02/2021 09:32:33         05/02/2021 09:46:33
Eseguo MacroOneMin          05/02/2021 09:32:58         05/02/2021 09:34:00
05/02/2021 09:33:29         $I$21
Eseguo MacroOneMin          05/02/2021 09:34:01         05/02/2021 09:35:03
05/02/2021 09:35:04          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:35:04         05/02/2021 09:36:06
Eseguo MacroOneMin          05/02/2021 09:36:08         05/02/2021 09:37:10
Eseguo MacroOneMin          05/02/2021 09:37:12         05/02/2021 09:38:14
Eseguo MacroOneMin          05/02/2021 09:38:16         05/02/2021 09:39:18
Eseguo MacroOneMin          05/02/2021 09:39:20         05/02/2021 09:40:22
Eseguo MacroOneMin          05/02/2021 09:40:24         05/02/2021 09:41:26
Eseguo MacroOneMin          05/02/2021 09:41:28         05/02/2021 09:42:30
05/02/2021 09:42:32          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:42:32         05/02/2021 09:43:34
05/02/2021 09:43:35          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:43:35         05/02/2021 09:44:37
Eseguo MacroOneMin          05/02/2021 09:44:39         05/02/2021 09:45:41
Eseguo MacroOneMin          05/02/2021 09:45:43         05/02/2021 09:46:45
Eseguo Macro15Min           05/02/2021 09:46:33         05/02/2021 10:00:33
Eseguo MacroOneMin          05/02/2021 09:46:47         05/02/2021 09:47:49
Eseguo MacroOneMin          05/02/2021 09:47:51         05/02/2021 09:48:53
05/02/2021 09:48:54          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:48:54         05/02/2021 09:49:56
Eseguo MacroOneMin          05/02/2021 09:49:58         05/02/2021 09:51:00 Eseguo MacroOneMin    05/02/2021 09:51:02         05/02/2021 09:52:04
05/02/2021 09:51:21         $K$11
05/02/2021 09:51:26         $L$11
Eseguo MacroOneMin          05/02/2021 09:52:06         05/02/2021 09:53:08
05/02/2021 09:53:09          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:53:09         05/02/2021 09:54:11
05/02/2021 09:54:12          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:54:12         05/02/2021 09:55:14
Eseguo MacroOneMin          05/02/2021 09:55:16         05/02/2021 09:56:18
05/02/2021 09:56:19          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 09:56:19         05/02/2021 09:57:21
Eseguo Macro30Min           05/02/2021 09:56:44         05/02/2021 10:26:44
Eseguo MacroOneMin          05/02/2021 09:57:23         05/02/2021 09:58:25
Eseguo MacroOneMin          05/02/2021 09:58:27         05/02/2021 09:59:29
Eseguo MacroOneMin          05/02/2021 09:59:31         05/02/2021 10:00:33
Eseguo MacroOneMin          05/02/2021 10:00:35         05/02/2021 10:01:37
Eseguo Macro15Min           05/02/2021 10:00:35         05/02/2021 10:14:35
05/02/2021 10:01:38          - Publish failure, Err. 1004
Metodo 'Publish' dell'oggetto 'PublishObject' non riuscito
Eseguo MacroOneMin          05/02/2021 10:01:38         05/02/2021 10:02:40
Eseguo MacroOneMin          05/02/2021 10:02:42         05/02/2021 10:03:44
05/02/2021 10:03:27         $K$21
Eseguo MacroOneMin          05/02/2021 10:03:48         05/02/2021 10:04:50
05/02/2021 10:03:57         $I$22
Eseguo MacroOneMin          05/02/2021 10:04:52         05/02/2021 10:05:54
05/02/2021 10:04:56         $K$15
05/02/2021 10:05:03         $L$15
Eseguo MacroOneMin          05/02/2021 10:05:56         05/02/2021 10:06:58
Eseguo MacroOneMin          05/02/2021 10:07:00         05/02/2021 10:08:02
Eseguo MacroOneMin          05/02/2021 10:08:04         05/02/2021 10:09:06
Eseguo MacroOneMin          05/02/2021 10:09:07         05/02/2021 10:10:09
Eseguo MacroOneMin          05/02/2021 10:10:11         05/02/2021 10:11:13
Eseguo MacroOneMin          05/02/2021 10:11:15         05/02/2021 10:12:17
Eseguo MacroOneMin          05/02/2021 10:12:19         05/02/2021 10:13:21
Eseguo MacroOneMin          05/02/2021 10:13:23         05/02/2021 10:14:25
05/02/2021 10:14:02         $K$20
05/02/2021 10:14:05         $L$20
Eseguo MacroOneMin          05/02/2021 10:14:26         05/02/2021 10:15:28
05/02/2021 10:14:28         $I$23
Eseguo Macro15Min           05/02/2021 10:14:35         05/02/2021 10:28:35
Eseguo MacroOneMin          05/02/2021 10:15:30         05/02/2021 10:16:32
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 11:22

Anthony47 ha scritto:Mentre non si puo' fare molto per chi dorme davanti alla tastiera, se non spiegargli quel che (non)succede durante le sue sospensioni, bisogna invece prevenire doppie schedulazioni: es se la OneMinuteMacro si sospende per lungo tempo, quanto basta da far arrivare il tempo anche della Macro15Min, e la Macro15Min si attivasse prima della OneMinuteMacro (cosa che in realta' e' avvenuto, a guardare i debug che hai pubblicato) allora la Macro15Min pensa che la OneMinuteMacro si sia perduta e la riavvia, ma subito dopo la OneMinuteMacro si esegue e rischedula da sola.
Per rimediare bisogna, su tutte le macro, fermare una eventuale schedulazione attiva prima di procedere con la nuova. Si puo' fare aggiungendo questo blocco in questa posizione:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***

Ovviamente bisogna personalizzare la riga marcata <<< personalizzare, usando per ogni macro il suo timer e il nome della macro da fermare, che sono quelli usati nella riga marcata ***

Ma intanto l'upload sta funzionando? verso il server web, intendo

Ciao

Quindi La OneMinuteMacro diventa così come l'hai scritta tu:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***


La Macro15Min così:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro15Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "Macro15Min"                   '***


La Macro30Min così:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro30Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "Macro30Min"                   '***


La OneHourMacro così:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneHourMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneHourMacro"                   '***


Ora un dubbio.. questa parte Debug.Print "Eseguo MacroOneMin" che a questo punto è presente in tutte va modificato o lasciato così com'è?
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 12:09

Oggi ha iniziato che rilascia file: schema-entrate.rcv mah! :mmmh: :aaah
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 05/02/21 12:47

Le macro come le hai riscritte sono tutte cappellate :evil: , a parte la OneMinuteMacro.
Devi fermare l'eventuale schedulazione di ognuna delle macro con il proprio orologio:
Next1Min serve per OneMinuteMacro
Next15Min serve per Macro15Min
Next30Min serve per Macro£0Min
Next60Min serve per OneHourMacro
Idem quanto ne imposti la rischedulazione, devi lavorare con l'orologio della specifica macro

Per recuperare la situazione, visto che ora hai una schedulazione frenetica di macro, devi chiudere il file e chiudere excel; poi riparti.

Oggi ha iniziato che rilascia file: schema-entrate.rcv mah!
Non decodifico questo messaggio
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 05/02/21 13:05

Non perdere il messaggio precedente, mi raccomando...

Prima degli ultimi 2 messaggi mi pareva che scorresse tutto abbastanza bene e quindi il risultato finale fosse soddisfacente; assumo che, corrette le macro cappellate il funzionamento tornera' abbastanza regolare; continua quindi a tenere sotto controllo il contenuto di finestra Immediata, verificando che:
-la schedulazione della OneMinuteMacro sia costante e non ci siano schedulazioni a meno di 1 minuto dalla precedente
-idem per la Macro15Min

Invece, per salvare solo i dati e non le immagini e gli oggetti, avrei sviluppato questa macro:
Codice: Seleziona tutto
Sub NewWb()
'
Workbooks.Add                                           'Crea nuovo file
ActiveSheet.Name = "ENTRATE"
Range("B1:D1").Value = Array("Ultima modifica: ", , "  Ultimo upload: ")
Range("B1").Value = Range("B1").Value & Format(ThisWorkbook.Sheets("ENTRATE").Range("AA1").Value, "dd-mmm hh:mm")
Range("D1").Value = Range("D1").Value & Format(Now, "hh:mm:ss")
'
ThisWorkbook.Sheets("ENTRATE").Range("A1:K161").Copy            'Copia da file originale
Range("A2").PasteSpecial xlPasteValues                        'incolla sul nuovo file, valori ..
Range("A2").PasteSpecial xlPasteFormats                       '.. e altro che serve; esempio
Range("A2").PasteSpecial xlPasteColumnWidths                  '.. esempio
'...
'altre cose da copiare
'altre cose da copiare
'...
Application.CutCopyMode = False
End Sub


Essa crea un nuovo foglio e vi copia il contenuto, solo valori e formati, di A1:K160; in testa aggiunge l'informazione dell'ultima modifica al foglio Entrate e l'orario di aggiornamento del file

Inserisci il codice nello stesso foglio che contiene la OneMinuteMacro, poi per integrarlo nella tua macro, lavorando nella OneMinuteMacro:
-aggiungi questo blocco in questa posizione:
Codice: Seleziona tutto
  Application.ScreenUpdating = False        '++++ Richiamo alla creazione del nuovo file
  Call NewWb                                '++++
  Application.ScreenUpdating = True         '++++
  With ActiveWorkbook.WebOptions            'CODICE ESISTENTE


-aggiungi questa istruzione in questa posizione:
Codice: Seleziona tutto
If Len(ActiveWorkbook.Path) < 5 Then ActiveWorkbook.Close False     '++++ PER CHIUDERE IL FILE DI SERVIZIO
'Then Reschedue myself:                                             'Codice preesistente
    On Error Resume Next                                            'BLOCCO FER FERMARE


Infine, per poter riportare data/ora delle modifiche al foglio ENTRATE, bisogna modificare la relativa Sub Worksheet_Change; ho usato la cella AA1 (che mi sembra disponibile) per registrarci data/ora delle modifiche, modificando il codice preesistente come segue:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRan As String
'
Application.EnableEvents = False            '++++
Range("AA1").Value = Now                    '++++
myRan = "I2:L162"       '<<< L'area per i cui cambiamenti viene subito fatto un File Save
If Application.Intersect(Target, Range(myRan)) Is Nothing Then GoTo ExA    'MMMM
Debug.Print Now, Target.Address
ThisWorkbook.Save
ExA:                                        '++++
Application.EnableEvents = True             '++++
End Sub

Le istruzioni aggiunte sono marcate +++ e una e' stata modificata


In questo modo il file htm creato e' abbastanza piu' piccolo (circa 1/4) di quello creato al momento, quindi le chanche che FTPBox interferisca col salvataggio verranno diminuite

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 14:32

Anthony47 ha scritto:Le macro come le hai riscritte sono tutte cappellate :evil: , a parte la OneMinuteMacro.
Devi fermare l'eventuale schedulazione di ognuna delle macro con il proprio orologio:
Next1Min serve per OneMinuteMacro
Next15Min serve per Macro15Min
Next30Min serve per Macro£0Min
Next60Min serve per OneHourMacro
Idem quanto ne imposti la rischedulazione, devi lavorare con l'orologio della specifica macro

Per recuperare la situazione, visto che ora hai una schedulazione frenetica di macro, devi chiudere il file e chiudere excel; poi riparti.

Oggi ha iniziato che rilascia file: schema-entrate.rcv mah!
Non decodifico questo messaggio

Tranquillo Anthony47, non ho ancora inserito le modifiche.. nessuna da ieri che andava. Non ho ancora avuto tempo.. ti ho scritto quella cantonata precedente, proprio perché avendoci guardato al volo non avevo avuto tempo di ricontrollarlo.

Così dovrebbe essere a posto:
Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***


Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro15Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next15Min
    Application.OnTime Next15Min, "Macro15Min"                   '***



Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro30Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next30Min
    Application.OnTime Next30Min, "Macro30Min"                   '***



Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneHourMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneHour", Now, Next60Min
    Application.OnTime Next60Min, "OneHourMacro"                   '***


Per quanto riguarda il file che non decodifichi.. ho già risolto. ;)
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 14:50

Non sono riuscito a modificare il post.. così dovrebbe essere tutto a posto.

Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"                   '***




Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro15Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo Macro15Min", Now, Next15Min
    Application.OnTime Next15Min, "Macro15Min"                   '***



Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "Macro30Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo Macro30Min", Now, Next30Min
    Application.OnTime Next30Min, "Macro30Min"                   '***



Codice: Seleziona tutto
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneHourMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneHour", Now, Next60Min
    Application.OnTime Next60Min, "OneHourMacro"                   '***
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 15:46

No anche così non va bene l'ho già visto io :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 05/02/21 20:19

Hai confuso molte cose...
Ti faccio l'esempio della Macro30Min mettendo in evidenza le sue personalizzazioni:

'Then Reschedue myself:
On Error Resume Next 'BLOCCO FER FERMARE
Application.OnTime Next15Min, "Macro15Min", , False '.. <<< personalizzare
On Error GoTo 0 'FINE BLOCCO
Next15Min = Now + TimeSerial(0,14,0)
Debug.Print "Eseguo Macro15Min", Now, Next15Min
Application.OnTime Next15Min, "Macro15Min" '***


Per visualizzare il bold non posso usare il "tag CODE", quindi l'impaginamento e' imperfetto, ma spero lo capirai e potrai applicarlo alla Macro30Min e OneHourMacro

Ricorda che per evitare "risonanze" tra i tempi di esecuzione, la Macro15Min la schedulo ogni 14minuti, e la OneHourMacro ogni 59 minuti; per la Macro30Min va bene il 30minuti. Ricordatene quando compili i vari Now + TimeSerial(Ore,Minuti,Secondi)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 05/02/21 21:24

Anthony47 ha scritto:Hai confuso molte cose...
Ti faccio l'esempio della Macro30Min mettendo in evidenza le sue personalizzazioni:

'Then Reschedue myself:
On Error Resume Next 'BLOCCO FER FERMARE
Application.OnTime Next15Min, "Macro15Min", , False '.. <<< personalizzare
On Error GoTo 0 'FINE BLOCCO
Next15Min = Now + TimeSerial(0,14,0)
Debug.Print "Eseguo Macro15Min", Now, Next15Min
Application.OnTime Next15Min, "Macro15Min" '***


Per visualizzare il bold non posso usare il "tag CODE", quindi l'impaginamento e' imperfetto, ma spero lo capirai e potrai applicarlo alla Macro30Min e OneHourMacro

Ricorda che per evitare "risonanze" tra i tempi di esecuzione, la Macro15Min la schedulo ogni 14minuti, e la OneHourMacro ogni 59 minuti; per la Macro30Min va bene il 30minuti. Ricordatene quando compili i vari Now + TimeSerial(Ore,Minuti,Secondi)

Ciao

No ma infatti ho lavorato di fretta e male. Ho riguardato tutto con calma e:

OneMinuteMacro:
Codice: Seleziona tutto
Public Next1Min As Date, Next15Min As Date, Next30Min As Date, Next60Min As Date
Dim StopAll As Boolean      'Stop all the schedules

'
'QUESTA E' LA TUA MACRO PRINCIPALE, quella che hai chiamato Macro3:
Sub OneMinuteMacro()                           'This is your 1 minute macro with amendments
If StopAll = False Then                        ' StopAll??
    If Next15Min < (Now - TimeSerial(0, 1, 0)) Then
        Next15Min = Now + TimeSerial(0, 14, 0)                   '15
        Application.OnTime Next15Min, "Macro15Min"
    End If
'
  Application.ScreenUpdating = False        '++++ Richiamo alla creazione del nuovo file
  Call NewWb                                '++++
  Application.ScreenUpdating = True         '++++
  With ActiveWorkbook.WebOptions
        .RelyOnCSS = True
        .OrganizeInFolder = True
        .UseLongFileNames = True
        .DownloadComponents = False
        .RelyOnVML = False
        .AllowPNG = True
        .ScreenSize = msoScreenSize1024x768
        .PixelsPerInch = 96
        .Encoding = msoEncodingWestern
    End With
    With Application.DefaultWebOptions
        .SaveHiddenData = True
        .LoadPictures = False
        .UpdateLinksOnSave = True
        .CheckIfOfficeIsHTMLEditor = True
        .AlwaysSaveInDefaultEncoding = False
        .SaveNewWebPagesAsWebArchives = True
    End With
'>>>>>>CORREGGI I PERCORSI COME DA TUA SITUAZIONE                                            <<<<<
     With ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceRange, _
        Filename:="C:\Users\mrosini\Desktop\DA DUPLICARE schema entrate\online\schema-entrate.htm" _
        , Sheet:="ENTRATE", Source:="$A$1:$K$161", HtmlType:=xlHtmlStatic)
        On Error Resume Next
        .Publish (True)
        If Err.Number <> 0 Then
            Debug.Print Now, " - Publish failure, Err. " & Err.Number
            Debug.Print Err.Description
        End If
        On Error GoTo 0
    End With
If Len(ActiveWorkbook.Path) < 5 Then ActiveWorkbook.Close False     '++++ PER CHIUDERE IL FILE DI SERVIZIO
'Then Reschedue myself:
    On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next1Min, "OneMinuteMacro", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next1Min = Now + TimeSerial(0, 1, 2)
    Debug.Print "Eseguo MacroOneMin", Now, Next1Min
    Application.OnTime Next1Min, "OneMinuteMacro"
Else
'Stop all schedules:
    On Error Resume Next
        Application.OnTime Next1Min, "OneMinuteMacro", , False
        Application.OnTime Next15Min, "Macro15Min", , False
        Application.OnTime Next30Min, "Macro30Min", , False
        Application.OnTime Next60Min, "OneHourMacro", , False
    On Error GoTo 0
End If
End Sub


Macro15Min
Codice: Seleziona tutto
Sub Macro15Min()                                 'MACRO DI CONTROLLO
If StopAll = False Then
    If Next1Min < (Now - TimeSerial(0, 0, 30)) Then
        Next1Min = Now + TimeSerial(0, 1, 2)
        Application.OnTime Next1Min, "OneMinuteMacro"
    End If
    If Next30Min < (Now - TimeSerial(0, 1, 0)) Then
        Next30Min = Now + TimeSerial(0, 30, 0)               '30
        Application.OnTime Next30Min, "Macro30Min"
    End If
'Reschedue myself:
On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next15Min, "Macro15Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                             'FINE BLOCCO
    Next15Min = Now + TimeSerial(0, 14, 0)                   '15
    Debug.Print "Eseguo Macro15Min", Now, Next15Min
    Application.OnTime Next15Min, "Macro15Min"
Else
'Stop all schedules:
    On Error Resume Next
        Application.OnTime Next1Min, "OneMinuteMacro", , False
        Application.OnTime Next15Min, "Macro15Min", , False
        Application.OnTime Next30Min, "Macro30Min", , False
        Application.OnTime Next60Min, "OneHourMacro", , False
    On Error GoTo 0
End If
End Sub


Macro30min
Codice: Seleziona tutto
Sub Macro30Min()                                 'MACRO DI CONTROLLO
If StopAll = False Then
    If Next15Min < (Now - TimeSerial(0, 1, 0)) Then
        Next15Min = Now + TimeSerial(0, 14, 0)               '15
        Application.OnTime Next15Min, "Macro15Min"
    End If
    If Next60Min < (Now - TimeSerial(0, 5, 0)) Then
        Next60Min = Now + TimeSerial(0, 59, 0)               '60
        Application.OnTime Next60Min, "OneHourMacro"
    End If
'Reschedue myself:
On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next30Min, "Macro30Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                                 'FINE BLOCCO
    Next30Min = Now + TimeSerial(0, 30, 0)
    Debug.Print "Eseguo Macro30Min", Now, Next30Min         '30
    Application.OnTime Next30Min, "Macro30Min"
Else
'Stop all schedules:
    On Error Resume Next
        Application.OnTime Next1Min, "OneMinuteMacro", , False
        Application.OnTime Next15Min, "Macro15Min", , False
        Application.OnTime Next30Min, "Macro30Min", , False
        Application.OnTime Next60Min, "OneHourMacro", , False
    On Error GoTo 0
End If
End Sub


OneHourMacro
Codice: Seleziona tutto
Sub OneHourMacro()                                 'MACRO DI CONTROLLO
If StopAll = False Then
    If Next30Min < (Now - TimeSerial(0, 5, 0)) Then
        Next30Min = Now + TimeSerial(0, 30, 0)                   '30
        Application.OnTime Next30Min, "Macro30Min"
    End If
    If Next1Min < (Now - TimeSerial(0, 0, 30)) Then
        Next1Min = Now + TimeSerial(0, 1, 1)
        Application.OnTime Next1Min, "OneMinuteMacro"
    End If
'Reschedue myself:
On Error Resume Next                                            'BLOCCO FER FERMARE
        Application.OnTime Next60Min, "Macro60Min", , False      '.. <<< personalizzare
    On Error GoTo 0                                             'FINE BLOCCO
    Next60Min = Now + TimeSerial(0, 59, 0)                       '60
    Debug.Print "Eseguo Macro60Min", Now, Next60Min
    Application.OnTime Next60Min, "OneHourMacro"
Else
'Stop all schedules:
    On Error Resume Next
        Application.OnTime Next1Min, "OneMinuteMacro", , False
        Application.OnTime Next15Min, "Macro15Min", , False
        Application.OnTime Next30Min, "Macro30Min", , False
        Application.OnTime Next60Min, "OneHourMacro", , False
    On Error GoTo 0
End If
End Sub


Creazione File più leggero
Codice: Seleziona tutto
Sub NewWb()
'
Workbooks.Add                                           'Crea nuovo file
ActiveSheet.Name = "ENTRATE"
Range("B1:D1").Value = Array("Ultima modifica: ", , "  Ultimo upload: ")
Range("B1").Value = Range("B1").Value & Format(ThisWorkbook.Sheets("ENTRATE").Range("AA1").Value, "dd-mmm hh:mm")
Range("D1").Value = Range("D1").Value & Format(Now, "hh:mm:ss")
'
ThisWorkbook.Sheets("ENTRATE").Range("A1:K161").Copy            'Copia da file originale
Range("A2").PasteSpecial xlPasteValues                        'incolla sul nuovo file, valori ..
Range("A2").PasteSpecial xlPasteFormats                       '.. e altro che serve; esempio
Range("A2").PasteSpecial xlPasteColumnWidths                  '.. esempio
'...
'altre cose da copiare
'altre cose da copiare
'...
Application.CutCopyMode = False
End Sub


Forse ho dimenticato il codice che riporta gli eventi nel debug.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 06/02/21 09:52

Humm... qualcosa non ha funzionato, perche' al 10° tentativo mi sembra tutto corretto, anche i Debug.Print che scrivono nella finestra Immediata le info diagnostiche :D :D
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 06/02/21 10:04

Anthony47 ha scritto:Humm... qualcosa non ha funzionato, perche' al 10° tentativo mi sembra tutto corretto, anche i Debug.Print che scrivono nella finestra Immediata le info diagnostiche :D :D


Ho corretto il file sul pc a casa perciò non so dirti come giri.. so che ieri sera salvava il file ma con nomi differenti.. forse perché mancavano le directory corrette (rispetto al pc in ufficio). Comunque lunedì ritorno a sperimentare e ti saprò dire qualcosa di più preciso e spero anche positivo.
Grazie di tutto per il momento Anthony47.. buon week end!
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 06/02/21 11:29

Sai che rileggendo adesso non sono sicuro di aver capito il senso della tua frase.
"Qualcosa non ha funzionato, perché al decimo tentativo mi sembra tutto a posto.."
Era ironia? :P :lol: :lol: :lol:
Ad ogni modo meglio tardi che mai :D
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 06/02/21 20:38

Ultimissima cosa che rimaneva da ritoccare era il worksheet change:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRan As String
'
Application.EnableEvents = False            '++++
Range("AA1").Value = Now                    '++++
myRan = "I2:L162"       '<<< L'area per i cui cambiamenti viene subito fatto un File Save
If Application.Intersect(Target, Range(myRan)) Is Nothing Then GoTo ExA    'MMMM
Debug.Print Now, Target.Address
ThisWorkbook.Save
ExA:                                        '++++
Application.EnableEvents = True             '++++
End Sub



La Macro2 diventa così:
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Macro2

'Stop all schedules:
    On Error Resume Next
        Application.OnTime Next1Min, "OneMinuteMacro", , False
        Application.OnTime Next15Min, "Macro15Min", , False
        Application.OnTime Next30Min, "Macro30Min", , False
        Application.OnTime Next60Min, "OneHourMacro", , False
    On Error GoTo 0
   
End Sub


E questo la parte riguardante il lancio delle varie Macro:
Codice: Seleziona tutto
Private Sub Workbook_Open()
    Next1Min = Now + TimeSerial(0, 1, 2)
    Application.OnTime Next1Min, "OneMinuteMacro"
    Next15Min = Now + TimeSerial(0, 14, 0)
    Application.OnTime Next15Min, "Macro15Min"
    Next30Min = Now + TimeSerial(0, 30, 0)
    Application.OnTime Next30Min, "Macro30Min"
    Next60Min = Now + TimeSerial(0, 59, 0)
    Application.OnTime Next60Min, "OneHourMacro"
End Sub


Che ne dici Anthony.. questa volta ho fatto bene i compiti a casa?
La risultante la puoi scaricare da qui nel caso tu volessi verificare ed anche per i posteri di chi leggerà in futuro.
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi Anthony47 » 06/02/21 21:22

Sai che rileggendo adesso non sono sicuro di aver capito il senso della tua frase.
"Qualcosa non ha funzionato, perché al decimo tentativo mi sembra tutto a posto.."
Era ironia? :P :lol: :lol:
Ti voglio lasciare col dubbio :D :D

Sembra che ora tutto sia completo; ma il collaudo lo puoi fare solo tu sul campo, aspettiamo quindi il Wow! finale

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Invio dati da foglio excel a pagina web ad ogni modifica

Postdi systemcrack » 07/02/21 01:30

Anthony47 ha scritto:
Sai che rileggendo adesso non sono sicuro di aver capito il senso della tua frase.
"Qualcosa non ha funzionato, perché al decimo tentativo mi sembra tutto a posto.."
Era ironia? :P :lol: :lol:
Ti voglio lasciare col dubbio :D :D

Sembra che ora tutto sia completo; ma il collaudo lo puoi fare solo tu sul campo, aspettiamo quindi il Wow! finale

Ciao

E lo so, ma ti assicuro che non è affatto facile lavorare in certe situazioni.. soprattutto se è roba che non conosci e a singhiozzo. Con calma e tranquillità ho sistemato tutto in mezz'ora, bene o almeno così sembra al primo colpo.

Comunque a onere della cronaca Ftpbox non va bene dopo un po' smette di sincronizzare. Ne devo trovare un altro.. ho letto in giro che auto ver funziona bene.. spero che il tecnico informatico dell'azienda me lo faccia testare, diversamente dovrò trovare un programma portable che faccia lo stesso, oppure oggi mi ero pensato di trasformare un vecchio pc in uno pseudo server cloud..bavagli del week end :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 140
Iscritto il: 27/07/17 09:40

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "Invio dati da foglio excel a pagina web ad ogni modifica":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti