Condividi:        

Sostituzione di valori della stessa riga in excel

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

Sostituzione di valori della stessa riga in excel

Postdi giamoros » 21/03/15 11:54

Ho questo problema su un foglio excel 2007 contenente 11 colonne per ogni riga.
Nella colonna E ci sono le quotazioni borsistiche che arrivano tramite DDE in automatico dalla Borsa Italiana, una riga per ogni titolo.
Vorrei che quando un successivo valore superasse il dato presente in E6 oltre che aggiornare la suddetta cella ( cosa che già avviene in automatico )vada a sostituirsi nella casella J6 che conterrà quindi il valore massimo raggiunto da tale azione.
Faccio un esempio :
E6 valore 26,50 J6 valore attuale 25,59 cambia in 26,50
E6 arriva 26,10 J6 valore attuale 26,50 non cambia perché inferiore al massimo raggiunto di 26,50
E6 arriva 26,45 J6 valore attuale 26,50 non cambia perché inferiore al massimo raggiunto di 26,50
E6 arriva 26,55 J6 valore attuale 25,50 cambia in 26,55
E6 arriva 26,56 J6 valore attuale 25,55 cambia in 26,56
Avevo pensato di risolvere il problema inserendo nella casella J6 la formula =SE(E6>J6;E6;0) ma all'arrivo di un dato la casella J6 mi dà =SE(#RIF!>#RIF!;#RIF!;0) e non so come risolvere il problema.
Grazie e cordiali saluti
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Sponsor
 

Re: Sostituzione di valori della stessa riga in excel

Postdi aurelio37 » 21/03/15 13:17

Sposto in Applicazioni Office Windows
Avatar utente
aurelio37
Moderatore
 
Post: 2736
Iscritto il: 07/02/07 11:36
Località: Milano

Re: Sostituzione di valori della stessa riga in excel

Postdi ricky53 » 21/03/15 19:23

Ciao,
la procedura DDE per la ricezione di nuovi dati come viene applicata al tuo file?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 22/03/15 11:03

La procedura DDE consta di due fasi.
La prima é l'attivazione sul PC client di un piccolo programa fornito dal datore di dati che in realta crerà un icona (collegamento) con il sito del fornitore.
La seconda è la predisposizione dei dati da ricevere su un foglio excel sul quale per ogni cella viene immessa una formula che individua il dato da ricevere quindi una cella per un solo dato.
Nella formula c'è l'indicazione del tipo di dato che si vuole ricevere; ad esempio il nome del tiolo,il valore attuale, l'ora della contrattazione,la quantità contrattata.
In questo caso si dovranno predisporre 4 celle.
A questo punto lanciando il foglio excel da client i due sistemi fornitore e client si contattano ed i dati affluiscono sul PC client
Tutto qui, più facile a farsi che a dire.
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi scossa » 22/03/15 11:59

Come ho già risposto in altri forum dove hai posto lo stesso quesito, la soluzione da usare quando si ha a che fare con le DDE è ricorrere al metodo SetLinkOnData, per cui suggerisco di leggere l'help di questo metodo.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 22/03/15 12:29

Dove trovo l'help del metodo SetLinkonData o una discussione risolta con tale metodo?
Grazie e cordiali saluti.
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi Anthony47 » 22/03/15 20:58

Apri l' editor delle macro, premi F1 e cerchi usando la stringa "SetLinkOnData"

Tra le discussioni precedenti, questa tua:
viewtopic.php?f=26&t=92122

O queste altri:
viewtopic.php?f=26&t=84343
viewtopic.php?t=86214

Qui invece era stato suggerito di usare una macro di "On Time" per campionare periodicamente i dati:
viewtopic.php?f=26&t=102171

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

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 23/03/15 16:20

Sono passato ad usare il metodo SetLinkonData che sembra funzuinare.
Ora però mi trovo a risolvere un problema nell'ambito dello stesso file.

Codice: Seleziona tutto
If nomefoglio = "Titoli di proprietà" Then
        If IsError(Range("J" & priga).Value) Then Exit Sub
        If IsError(Range("N" & priga).Value) Then Exit Sub
       MsgBox "Valore di E6 = " & Range("E" & priga).Value
 If Range("E" & priga).Value > Range("J" & priga).Value Then
                                      Range("J" & priga).Value = Range("E" & priga).Value
                                                               End If
        MsgBox "tutto ok"
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi Anthony47 » 24/03/15 01:34

Ora però mi trovo a risolvere un problema nell'ambito dello stesso file.
Non tenerci sulle spine, dicci quale e'!

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

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 24/03/15 10:59

Scusatemi ma a volte ottengo un errore e stavo scrivendo l' ultima richiesta quando ho dato l'invio inavvertitamente.
Nel frattempo ho pensato ad un bypass del problema per cui voglio fare ulteriori ed approfondite prove.
Comunque vi terrò informati sul problema.
Cordiali saluti.
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 25/03/15 11:40

Come promesso rieccomi a Voi.
La notizia buona è che il sistema sembra funzionare anche se sto continuando la prove che purtoppo posso fare solo a Borsa Italiana aperta.
Il primo problema di cui chiedo eventuale spiegazione e/o aiuto è questo:
Nell'esempio sottoindicato la prima volta che passa il programma ottengo un errore tipo non corrispondente alla seguente istruzione
If Range("E" & priga).Value > Range("J" & priga).Value Then
e il programma si ferma accendendo tale riga in giallo e mostrando un cursore ;se sposto il mouse sui due range dell'istruzione vedo i due valori giusti.
A questo punto fra le proposte fornite dal sistema scelgo vai avanti fine alla fine e tutti rifunziona.
Di seguito la parte del programma interessato.
code][/code]Dim lRiga As Long, sTitolo As String, vPrezzo As Variant, bChanged As Boolean, vOra As Variant
Dim Aspetta As Single
Dim nomefoglio As String, lcolore As Integer, segno As Integer, limite As Integer, suona As Integer, percent As Integer
Dim diffperc As Integer, Nminmax As Integer, lsuono As Integer, MinMax As String, Colore As Integer '
Dim Gif As String, Alto As Integer, sinistra As Integer, valore As Integer, ora As Integer
nomefoglio = "Titoli di proprietà"
nomefoglio = ActiveSheet.Name
If nomefoglio = "Titoli di proprietà" Then
If IsError(Range("J" & priga).Value) Then Exit Sub
' If IsError(Range("N" & priga).Value) Then Exit Sub

If Range("E" & priga).Value > Range("J" & priga).Value Then
MsgBox "Valore di E" & priga & " = " & Range("E" & priga).Value
Range("J" & priga).Value = Range("E" & priga).Value
Range("K" & priga).Value = Range("E" & 3).Value
End If

If Range("E" & priga).Value < Range("L" & priga).Value Then
'MsgBox "Valore di E" & priga & " = " & Range("E" & priga).Value
Range("L" & priga).Value = Range("E" & priga).Value
Range("M" & priga).Value = Range("E" & 3).Value
End If
Exit Sub[code][/code]
Il secondo problema è che se voglio vedere le istruzioni di questo foglio se dalla lingletta faccio tasto destro e scelgo visualizza codice mi appare una schermata bianca del modulo da cui tramite il visualizzazione oggetti ottengo un elenco e poi con doppio click sull'oggetto desiderato ho la lista del programma.
Io uso Excel 2007 : tale funzione è variata dall'Excel 2003 ?
Infine i colori ; quote ed altri tag non compaiano nell'anteprima?
A disposizione e saluti a tutti.
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi giamoros » 27/03/15 17:00

Qualcuno sa spiegarmi per quale motivo se nel seguente modulo uso l'istruzione
If Range("E" & priga).Value > Range("J" & priga).Value mi dà la prima volta che viene eseguita errore ed il programma si ferma in attesa di una mia risposta come già descritto in un precedente post mentre su uso l'istruzione If Range("E" & priga).text > Range("J" & priga).text non ho nessun errore salvo ulteriori anomalie nel proseguio del programma?
Codice: Seleziona tutto

Option Base 1
'Private FrmMessaggio As MyMsg
Private Declare Function sndPlaySound Lib "WINMM.DLL" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_ASYNC = &H1
Public Sub Macroriga6()
nriga = 6
'MsgBox "0006 con nriga " & nriga
Call LinkChange(nriga)
End Sub
Public Sub Macroriga7()
nriga = 7
'MsgBox "0007 con nriga " & nriga
Call LinkChange(nriga)
End Sub
Public Sub Macroriga8()
nriga = 8
'MsgBox "0008 con nriga " & nriga
Call LinkChange(nriga)
End Sub

Public Sub LinkChange(priga)
Dim lRiga As Long, sTitolo As String, vPrezzo As Variant, bChanged As Boolean, vOra As Variant
Dim Aspetta As Single
Dim nomefoglio As String, lcolore As Integer, segno As Integer, limite As Integer, suona As Integer, percent As Integer
Dim diffperc As Integer, Nminmax As Integer, lsuono As Integer, MinMax As String, Colore As Integer '
Dim Gif As String, Alto As Integer, sinistra As Integer, valore As Integer, ora As Integer

nomefoglio = "Titoli di proprietà"
nomefoglio = ActiveSheet.Name
If nomefoglio = "Titoli di proprietà" Then
If IsError(Range("J" & priga).Value) Then Exit Sub
If IsError(Range("N" & priga).Value) Then Exit Sub

If Range("E" & priga).Text > Range("J" & priga).Text Then
'MsgBox "Valore di E" & priga & " = " & Range("E" & priga).Value
Range("J" & priga).Value = Range("E" & priga).Value
Range("K" & priga).Value = Range("E" & 3).Value
End If

If Range("E" & priga).Text < Range("L" & priga).Text Then
'MsgBox "Valore di E" & priga & " = " & Range("E" & priga).Value
Range("L" & priga).Value = Range("E" & priga).Value
Range("M" & priga).Value = Range("E" & 3).Value
End If
End If
End Sub
Codice: Seleziona tutto
Windows 8.1 Excel 2007
giamoros
Utente Junior
 
Post: 48
Iscritto il: 30/06/11 15:22

Re: Sostituzione di valori della stessa riga in excel

Postdi Flash30005 » 28/03/15 01:45

Molto probabilmente hai un numero in formato testo pertanto puoi provare ad usare questo codice
Codice: Seleziona tutto
If Val(Range("E" & priga)) > Val(Range("J" & priga)) then


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Sostituzione di valori della stessa riga in excel

Postdi Anthony47 » 28/03/15 02:11

Guarda il suggerimento di Flash, sopra...

Rispondo al penultimo messaggio, perche' a quello spero tu faccia riferimento quando dici "si ferma in attesa di una mia risposta come già descritto in un precedente post"
Nell'esempio sottoindicato la prima volta che passa il programma ottengo un errore tipo non corrispondente alla seguente istruzione
If Range("E" & priga).Value > Range("J" & priga).Value Then
Quell' errore fa pensare che in origine in una delle due celle ci sia "un qualcosa" che non sia comparabile con quanto presente nell' altra cella; propendo per una indicazione di errore.
Quale siano le celle da confrontare dipende dal valore che assume PRIGA in quel momento.

Il secondo problema è che se voglio vedere le istruzioni di questo foglio se dalla lingletta faccio tasto destro e scelgo visualizza codice mi appare una schermata bianca del modulo da cui tramite il visualizzazione oggetti ottengo un elenco e poi con doppio click sull'oggetto desiderato ho la lista del programma.
Nel modulo raggiunto con Tasto dx, Visualizza codice ci vanno le macro "di evento" di quel foglio; quelle standard vanno in un "Modulo" standard. La tua e' una macro standard. Se premi Alt-F8, scegli la tua macro dall' elenco che ti propne, premi Modifica e ti dovrebbe aprire il Modulo in cui e' scritto il codice.

Infine i colori ; quote ed altri tag non compaiano nell'anteprima?
I tag vanno messi ai bordi del testo che vuoi taggare: seleziona il testo, applicagli il tag. Se guardi il tuo messaggio (non l' ho editato per lasciartelo visibile), vedrai che i tag sono messi "per conto loro"
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Sostituzione di valori della stessa riga in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 108 ospiti