Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Elaborazione dati da DDE -MT

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

Elaborazione dati da DDE -MT

Postdi Gianca532011 » 31/05/11 13:23

Ciao a tutti,
Questo è il mio primo post e faccio riferimento a Voi per un piccolo aiuto, per la modifica di un progetto VBA, che conosco poco e con ricordi molto in la nel tempo.
Il progetto è il seguente :
1) da DDE acquisisco dati tick by tick da Metatrader 4 su foglio excel,
2) elaboro con VBA nel senso che metto i dati in sequenza sullo tesso foglio, E FINO A QUI CI SONO RIUSCITO, ma non è tutta farina del mio sacco.
3) LA MODIFICA CHE VI CHIEDO :
3a) - l'istruzione VBA di cui al p2 riporti solo 60 dati ( ovvero 60 secondi o multipli che già posso selezionare) in righe successive ,
-alla 61 elabora e riporta su foglio 2 : ora HH:Min - media semplice e dev standard in colonne distinte .
- resetta il ciclo e poi riparte.

I dati sul foglio 2 in sequenza per riga anche all'infinito oppure, se non è troppo complicato, darebbe utile a tempo selezionabile , in questo caso da 1 a 24 ore.

Lo scopo di questo progetto è di creare le corrette premesse per una successiva elaborazione dei dati che rilevati come sopra sono la media aritmetica dei singoli tick a un secondo per un minuto. Da questi dati mi sarà poi facile, con le semplici funzioni di excell ricavare indicatori e fare tutto ciò che la mia fantasia (e vostra) permetterà di fare.

Grazie a chi vorrà aiutarmi

Ho preparato il file di base con il progetto VBa di base , ma non so come inviarlo... sono proprio novizio, anzi novello, anzi ...
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: Elaborazione dati da DDE -MT4

Postdi Gianca532011 » 31/05/11 16:46

Sempre io, per due righe di commento .
Non è nel mio carattere andare a "scrocco" ( come di fatti sto facendo qui ) ma , semplicemente, dopo una serie infinita di prove e riprove, più o meno miseramente fallite, sono arrivato alla mesta conclusione di chiedere aiuto a chi sicuramente, vuoi per lavoro, vuoi per passione , vuoi per studi fatti , è capace di programmare in VBA .
Ciò non significa che abbia smesso di consultare esempi che girano nei vari forum, ma quello che mi manca è l'ABC, ovvero le basi su cui costruire un'adeguata conoscenza di questo sistema di programmazione . A suo tempo me la cavavo bene con le macro ma non ho mai utilizzato il VBA.
Ciao a tutti.
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Avatar3 » 31/05/11 23:21

Se non hai ricevuto risposta è solo perché, forse, non è chiaro quello che nella tua mente lo è
forse dovresti rendere più esplicita l'esigenza con immagini o file
Non ha importanza la tua esperienza del Vba ma far capire cosa vorresti
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 31/05/11 23:35

Ciao gianca532011, benvenuto nel forum.
Guarda anche il messaggio di Avatar sopra.

Mi pare che per cominciare vorresti limitare in Foglio1 una raccolta dati a N Righe, e al completamento di queste righe riportare alcuni dati statistici su Foglio2; mi immagino che la tua macro attuale sia progettata per accodare nuovi dati all' infinito sotto i dati precedenti.
Se e' cosi' allora dovrebbe essere idoneo questo approccio:
-in un' area libera di Foglio1 calcolati, tramite formule, l' orario piu' alto dei dati raccolti, la media semplice, la deviazione standard.
-sviluppi una nuova macro in cui:
--controlli se la riga 61 di una colonna popolata dalla tua raccolta dati sia vuota o abbia un contenuto; se vuota termini la macro (es If Range("A61")="" then Exit Sub)
--se non vuota allora significa che e' il momento di copiare i dati statistici (quelli calcolati via formule nell' area libera) e incollarli come valori accodandoli ai dati gia' presenti su foglio2.
--e subito dopo ripulire l' area destinata alla raccolta dati (anche oltre la riga 61), dando per scontato che la tua macro (attuale) a quel punto ricomincera' a scrivere i dati dalla riga 1 (o quella che hai previsto sia la riga iniziale)
-infine nella macro attuale in coda alle istruzioni che fanno la raccolta dati metterai Call NuovaMacro.

La seconda domanda non la so valutare, perche' non ho capito se mentre blocchi la raccolta dati su Foglio2 vuoi che la raccolta dati su Foglio1 continui o sia quella da interrompere; comunque aggiungere un calcolo di durata si potra' fare anche dopo aver creato la prima parte.

Dimmi se l' approccio proposto funziona nel tuo caso, ad esempio accertati che quando cancelli su Foglio1 i dati raccolti (lo puoi fare "a mano" col tasto Canc) la prossima scrittura avviene sulla riga iniziale.

Dimmi anche su quali aspetti di quanto ti ho detto sei autonomo e su quali ti serve aiuto. L' deale sarebbe provare a realizzare quanto detto, se ti funziona subito gridare al miracolo, provare a debuggare quello che non funziona, eventualmente chiedere aiuto sulle situazioni specifiche di errore; ma siamo pronti a fare di piu' (escluso, da parte mia, la situazione "scusa non sono capace, lo puo fare tu?"; perche' sono un incorreggibile pelandrone)

Intanto chiarisci meglio anche come vedi la seconda questione posta.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 01/06/11 08:44

Grazie per le risposte. Questo è il Terzo messaggio, nel prossimo allego quanto fatto e spero, l'obiettivo finale.
Ciao
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 01/06/11 13:28

Ecco fatto .
La tabella prevede commenti e la modifica richiesta. Per l'aggiornamento dati il sistema è collegato a una piattaforma MT4, se non trova il collegamento si interrompe il codice VBA. Come vedrete ho fatto una stesura passo-passo, sia perchè nel foglio DDEinput non è possibile scriverci , sia perchè mi sembrava un approccio + logico separare i vari fogli .
ciao a tutti.

https://rapidshare.com/files/2799245477/ProvaVBA4.xlsm
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 01/06/11 22:33

Nel file pubblicato non trovo niente di quanto suggerito....
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 02/06/11 05:21

Risposta per Anthony47,
è vero, nel foglio 1 non ho inserito macro ma una semplice trasposizione che copia pari pari il contenuto delle celle del foglio DDEinput ( per 60 dati = un minuto ) limitatamente alle prime 60 righe dati.
Il mio problema resta come modificare il codice VBA- del DDeinput che di fatto prosegue all'infinito.
A meno che tu voglia suggerirmi di lasciare il Vba cosi com'è e di trasferire nella matrice del foglio 1 senza soluzione di continuità un blocco dati di 60 secondi (60 righe contenenti i valori che mi interessano). E questo quello che intendi? Se cosi fosse dovrei comunque creare un nuovo codice perchè non so se una macro mi fa azioni ripetitive . oppure si ?
Ciao
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 02/06/11 15:30

Riguardando il tuo file mi vengono da fare ulteriori considerazioni.
1. Intanto non capisco perche' ogni secondo leggi i dati e non usi invece il metodo SetLinkOnData per leggere invece solo al cambiamento dei dati in input. Per discussioni simili fai Cerca nel forum Applicativi Office con la parola SetLinkOnData, dovresti vedere numerose altre discussioni che ti potranno aiutare a capire di cosa parlo.
2. La tua macro gia' accoda ogni secondo i dati che ti interessano (lo do' per scontato, non ho fatto nessuna verifica in merito). Ora forse tu vuoi accantonare su altro foglio un tot di informazioni che si riferiscono agli ultimi 60 secondi di dati accantonati?
Se SI, allora il modo piu' semplice secondo me potrebbe essere questo:
-ti crei N "range dinamici" che fanno riferimento alle ultime 60 celle della colonna dati che ti interessa. Per questo devi creare degli "intervalli nominati" (Menu /Inserisci /Nome /Definisci) che nell' area "Riferito A" contengono una definizione come questa:
Codice: Seleziona tutto
=scarto(DDEInput!$A$1;conta.valori(DDEInput!$A:$A)-60;2;60;1)
Questa definisce un intervallo che comprende le ultime 60 celle della colonna C; "60" deriva dei valori scritti in formula, "C" deriva dall' offset di colonna pari a "2" nella formula. Cosi' sai anche come definire intervalli riferiti ad altre colonne.
Se l' intervallo di sopra e' stato chiamato DColC allora, ad esempio, potrai usare una formula tipo =Media(DColC) e otterrai la media degli ultimi 60 valori (quindi degli ultimi 60 second)i dei dati raccolti.
Fai questo per tutti i valori di DDEInput che vuoi storicizzare su Foglio2, e metti in I1:L1 dello stesso DDEInput le formule per calcolare i valori che vuoi storicizzare (media BID, Dev std, media ASK , Dev Std); fa eccezione a questo ragionamento il campo Data/Ora perche' quello che tu raccogli e' un campo testo; il mio suggerimento e' che riporti in H1 l' ultimo campo raccolto; per questo il range dinamico di col A non avra' altezza=60 e larghezza=1 (vedi "60;1" nella formula suggerita e l' help on line della funzione Scarto), ma altezza=larghezza=1 (quindi "1;1", oppure valori omessi, nella formula del range dinamico).

Finora quindi abbiamo detto come puoi preparare in DDEInput in H1:L1 i 5 valori che vuoi riportare in Foglio2.
A questo punto prepari una macro che si rischeduli ogni 60 secondi, che copia i valori di H1:L1 e li "Incolla-speciale /Valori" in coda a Foglio2.
Il cuore di questa macro sara'
Codice: Seleziona tutto
Sheets("DDEInput").Range("H1:L1").Copy
Sheets("Foglio2").Cells(Rows.count,1).End(xlUp).Offset(1,0).PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Per chiarezza Foglio1 e' diventato inutile, essendo stato sostituito dai Range dinamici e dalle formule in DDEInput; come pure e' stata superata la proposta che ti avevo fatto nel mio messaggio iniziale.

Ti faccio notare che la tecnica di programmazione che hai adottata e' molto barocca, cioe' inutilmente arzigogolata. Per vedere altri esempi di macro eseguite periodicamente fai Cerca nel forum Applicativi Office con la parola "Ontime", autore "Anthony47", mostra Topic (non Messaggi).

In tutto questo non ho ancora capito il tuo livello di esperienza sul vba; comunque se hai difficolta' a realizzare quanto proposto allora scrivi ancora precisando su cosa ti sei arenato.

Se invece quanto descritto non corrisponde a quanto devi realizzare allora evidentemente devi raccontare nuovamente le cose...

In ogni caso fai sapere.
Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 02/06/11 16:48

Grazie.
Provo a fare quanto da te suggerito, compatibilmente con la mia totale ignoranza di VBA.
Però sono testardo...

Ciao
Gianca53
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 04/06/11 12:58

"totale ignoranza di VBA" e' molto diverso da "ma non è tutta farina del mio sacco"
Comunque se dopo qualche giorno di "testarda applicazione" non fai importanti passi avanti allora posta ancora spiegando su cosa ti sei arenato: riuscirci da soli e' importante, ma non riuscirci da solo e' da evitare...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 06/06/11 17:10

ciao Anthony,
prima di fare ulteriori prove, nel frattempo ho scaricato e provo a leggere fior di manuali VBA, ho un dubbio esistenziale: come faccio a definire le ultime 60 celle, come da te suggerito, se la mia macro aggiunge sempre nuovi dati ? devo forse selezionare un numero maggiore di celle ? a naso mi piace poco , come faccio a sapere se ho raccolto i dati di un minuto (mio obiettivo) o di 1,1 oppure di 1,3 ? Oltretutto ho notato che la macro è puntuale riferita all'unità di tempo complessivo (1 minuto) ma non mi riporta esattamente gli intervalli intermedi . Mi spiego: macro settata a 10 secondi , quindi c'è da aspettarsi 6 scritture (6x10 = 1minuto) invece a volte ne fa 7 oppure 9 o 10 . Nonostante ciò , cronometro alla mano, il cambio del minuto è corretto. in parte penso che dipenda dal carico di lavoro del PC , in questo momento ho parecchi processi attivi , tra cui anche due piattaforme metatrader di acquisizione dati forex . Come mi comporto ? ci sono alternative , magari basate sulla funzione tempo ? Ammesso e non concesso che win 7 ed excel la gestiscano bene ..
Sicuramente la strada da te indicata è semplice ed elegante, però è necessario trovare una forma di raccolta dati garantita al "minuto" .Grazie
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 07/06/11 15:10

Alla domanda " come faccio a definire le ultime 60 celle, come da te suggerito, se la mia macro aggiunge sempre nuovi dati ?" la risposta e' "Guarda il commento alla formula con SCARTO che ti diedi qui: viewtopic.php?f=26&t=91793&p=524301#p523963".

Commenti generali:
Beh, ti aspettavi che windows + excel fossero un perfetto sistema per la gestione di eventi real time?
Con quanto avevo suggerito precedentemente tu avresti identificato gli ultimi 60 record raccolti (o gli ultimi N, se e' vero che la tua frequenza di raccolta dati non e' detto che sia di 1 volta/sec); non e' detto che questo corrisponde a 1 minuto elapsed (lo hai appurato con i tuoi esperimenti), e in piu' (non so valutarne l' impatto su quello che devi fare) ragionevolmente appartenevano a due minuti diversi di orologio (es da 14:50:30 a 14:51:29)

Ora mi pare che tu insegua la precisione chirurgica di 1 minuto, e per questo alla terza risposta ti propongo una terza via.
Usiamo una cella libera del tuo foglio di raccolta per memorizzare l' orario di raccolta; io ho usato Z1.
Modifica su Modulo1 la tua Sub AggiornaDati con queste aggiunte;
Codice: Seleziona tutto
RngOut.Value = RngIn.Value    '<<< ESISTENTE
'fase 1
CRow = SH.Cells(Rows.Count, "e").End(xlUp).Row
If SH.Range("E" & CRow).Value <> SH.Range("$Z$1") And CRow > 3 Then
    CTime = SH.Range("E" & CRow - 1).Value
    SH.Range("$Z$1").Value = CTime
    For I = CRow - 1 To 3 Step -1
        If Range("E" & I).Value < CTime Then
            BRow = I + 1: Exit For
        End If
    Next I
    SH.Range(Cells(BRow, "A"), Cells(CRow - 1, "A")).Name = "APippo"
    SH.Range(Cells(BRow, "B"), Cells(CRow - 1, "B")).Name = "BPippo"
    SH.Range(Cells(BRow, "C"), Cells(CRow - 1, "C")).Name = "CPippo"
    'altre definizioni utili, vedi testo
    'altre definizioni utili
'Fase 2
    SH.Range("H1:L1").Copy 
    WB.Sheets("Foglio2").Cells(Rows.count,1).End(xlUp).Offset(1,0).PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'
End If
Call StartTimer   '<<< ESISTENTE

La "fase 1" serve a identificare che c' e' stato un cambio di orario rispetto a quanto memorizzato in Z1; in questa circostanza vado a definire N nomi di intervalli che corrispondono alle colonne di dati che ti interessano; a puro scopo esemplificativo ho usato i nomi APippo, BPippo, CPippo che fanno riferimento alle colonne A, B, e C e alle righe che hanno come orario di raccolta appena inferiore all' orario corrente; il numero di righe variera' a seconda della frequenza reale di raccolta.

Questi intervalli li userai in N formule che avrai inserito in altre celle libere del foglio di raccolta dati, dove calcolerai i valori che intendi storicizzare; ho immaginato che queste formule siano in H1:L1. Questa tecnica e' analoga a quanto avevo descritto nel suggerimento precedente (a parte il modo di calcolare gli intervalli su cui calcolare i risultati).

In "fase 2" la macro copia i dati dalle N celle con formule e ne fa un Incolla speciale /Valori su Foglio2.

Credo che questo risponda a quanto richiesto, con una avvertenza: non avendo la tua piattaforma la macro e' stata collaudata ...off line, quindi potrebbero essere rimasti comportamenti anomali che dovrai debuggare tu.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 08/06/11 06:37

Anthony,
innanzitutto grazie per l'aiuto.
Ti aggiorno sulla situazione : ho copiato la macro in "aggiornadati", modificando i riferimenti per adattarla alla nuovo WS ( ho tolto il foglio 2 ormai inutile) ; detto questo ho provato il tutto e succede che la trasposizione dati si ferma dopo due righe . Ho verificato, per quello che ne capisco, i vari riferimenti, ma senza nessun risultato. Mi sembra tutto OK , ma non fa quello che deve fare . Dov'è l'inghippo?
Lascio a te, appena hai un attimo di tempo, risolvere l'arcano.

Due parole sulla precisione chirurgica, ovvero sulla mia insistenza per avere una media precisa al "minuto".
1) questo sistema sarà la base di partenza per successive elaborazioni dei dati ottenuti dal mercato forex, ovvero volevo provare alcuni indicatori, tipo il calcolo con le derivate e altri.
2) la precisione della media a 60 secondi, può essere poco significativa se si opera su valori orari, ma diventa oltremodo significativa se si fa scalping a 1 o 5 minuti.
In allegato ti invio il file (ultima versione) pur con il problema di cui sopra.
grazie ancora .
gianca53

https://rapidshare.com/files/2065826314/ProvaVBA7.xlsm
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 09/06/11 01:17

Hai impostato una On Error GoTo XIT che ti maschera tutti gli errori applicativi e non ne fa alcuna gestione; altrimenti ti saresti accorto che la macro puntava su Foglio2 mentre c' era solo Foglio1.
Ma questo e' solo uno dei problemi, riguardando la macro sono venuti fuori un paio di problemi piu' un paio di rischi di problemi; ho pertanto rivisto la macro come segue:
Codice: Seleziona tutto
RngOut.Value = RngIn.Value    '<<<Esistente
CRow = sh.Cells(Rows.Count, "E").End(xlUp).Row
If Round(sh.Range("E" & CRow).Value, 6) <> Round(sh.Range("$Z$2"), 6) And CRow > 3 Then
    CTime = sh.Range("E" & CRow - 1).Value
    sh.Range("$Z$2").Value = sh.Range("E" & CRow).Value
    For I = CRow - 1 To 3 Step -1
        If sh.Range("E" & I).Value < (CTime - 0.000001) Then
            BRow = I + 1: Exit For
        End If
    Next I
    'sh.Range(Cells(BRow, "A"), Cells(CRow - 1, "A")).Name = "APippo"
    sh.Range(sh.Cells(BRow, "B"), sh.Cells(CRow - 1, "B")).Name = "BPippo"
'    ThisWorkbook.Names("BPippo").RefersTo = sh.Range(sh.Cells(BRow, "B"), sh.Cells(CRow - 1, "B"))
    sh.Range(sh.Cells(BRow, "C"), sh.Cells(CRow - 1, "C")).Name = "Cbid"
    sh.Range(sh.Cells(BRow, "D"), sh.Cells(CRow - 1, "D")).Name = "Dask"
    sh.Range("H2:L2").Copy
    WB.Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End If
Call StartTimer    '<<<Esistente

Inoltre I dati vengono accodati su Foglio1 guardando in colonna A dove e' posizionato l' ultimo dato precedente; col A corrisponde ad H2 di DDEInput, ma questa cella non contiene (nel file pubblicato) nessun dato, quindi ben che vada i dati verrebbero riscritti tutti sulla riga 2 di Foglio2.
Insomma o metti qualcosa in H2 o copi solo da I2 oppuri usi una colonna diversa da A per sondare quale e' la prima posizione libera in Foglio1.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 09/06/11 13:34

Anthony ciao,

non è per spirito di persecuzione ... ma mi da' errore vedi (file doc) e si blocca la DDE attivando la macro aggiornadati.


https://rapidshare.com/files/2361597647 ... _6e_7.docx
https://rapidshare.com/files/1825870458/ProvaVBA7.xlsm

gianca53
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 09/06/11 13:40

Aggiungo un ulteriore elemento, se riapro la versione 7 la DDE resta inchiodata mentre con la V. 6, anche senza attivare le macro, la DDe è arzilla e funzionante . Why ? La versione 6 è senza le ultime aggiunte (prima impostazione).
ciao
gianca53
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 09/06/11 14:08

Non so assolutamente interpretare quanto hai scritto nel file .docx (quale situazione produce quali risultati).
Se il tuo file parte con dati raccolti che potrebbero essere relativi al giorno precedente allora puo' essere necessario modificare la macro come segue:
Codice: Seleziona tutto
        End If     '<<<Esistente
    If BRow = "" Then BRow = I  '<<< AGGIUNTA
    Next I        '<<< Esistente
La modifica comunque non fa male.

Se definisci anche il nome "APippo" allora la sintassi della riga deve essere come quella delle righe successive.

Per il resto, come detto non ho la tua piattaforma, in caso di errori devi debugare la macro nel tuo ambiente.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elaborazione dati da DDE -MT

Postdi Gianca532011 » 16/06/11 21:26

Finalmente!
E stata dura ma finalmente una macro che funziona e che fa quello che avevo in mente, o quasi. Stilisticamente sarà da perfezionare e migliorare, idem per un certo disallineamento tra le due macro a tempo, quella che scrive sul foglio DDeinput e quella che trascrive i valori dell'intervallo J2:n2 nel foglio 1. Spero che qualche volonteroso, più addentro alla programmazione di quanto lo sia il sottoscritto, dia un aiuto costruttivo al miglioramento del prototipo che qui allego.

ciao a tutti.

nota la macro gira su excel 2007



https://rapidshare.com/files/3436697950 ... A4bis.xlsm
Giancarlo
win 7 pro- Office 2013 Ita
Gianca532011
Utente Senior
 
Post: 130
Iscritto il: 27/05/11 10:18

Re: Elaborazione dati da DDE -MT

Postdi Anthony47 » 16/06/11 22:20

Quindi alla fine hai rinunciato alla "precisione al minuto", come pure hai congelato il periodo di raccolta a 1 sec visto che imposti blocchi da 60 righe nelle formule che definiscono i range dinamici...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Elaborazione dati da DDE -MT":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti