» »

Pomoč EXCEL snemanje 10 zadnjih vrednosti

Pomoč EXCEL snemanje 10 zadnjih vrednosti

_IKE_ ::

Zdravo !

Potrebujem pomoč znalcev Excela.Imam delovni zvezek z dvema listoma ( List1 in List2 )
Na List1 z neta pridobivam podatke ki se osvežujejo vsako sekundo. Podatki se nahajajo v stolpcu B, celice od B2 do B300

Želel bi da bi excel posnel osvežene podatke (cene) vsako sekundo in jih zabeležil na list2.

Trenutno za zapisovanje vrednsoti uporabljam:

Sub update()

With Sheets("record")
rw = .cells(.rows.count, 1).end(xlup).row + 1
.Range(.Cells(rw, 1), .Cells(rw, 2)).Value = Sheets("datafeed").Range("a1:b1").Value
End With
Application.OnTime Now + TimeSerial(0, 5, 0), "update" ' run again after 5 minutes
End Sub


ki pa osvežene podatke iz Lista1 zapisuje v v zaporedne vrstice, kar pa meni ne pride prav .

Želja je da bi se ti osveženi podatki iz Lista1 zapisovali v omejeno število zaporednih stolpcev ( 10 oz 20), ( v katerem bi prva vrednost bila zadnja osvežena, zadnja vrednost pa vrednsot iz pred 10 oziroma 20 sekund

"Grafični" prikaz kaj želim

List 1...Vrednost B1. ............150
List 2...Vrednost B1..............150.... 145 .... 140 ... 135... 170 165... 160 ... 163... 163 ... 161


Za osveževanje podatkov uporabljam :
Sub my_onTime()
Application.OnTime Now + TimeValue("00:00:01"), "my_Procedure"
End Sub

Sub my_Procedure()
ThisWorkbook.RefreshAll
my_onTime
End Sub




Hvala!
  • spremenil: _IKE_ ()

smetko ::

Ta koda Pogleda na list1 celica A1 vrednost, in to vrednost išče na list2 kolona A.
Če ne najde vrednost, potem prepiše v novo vrstico podatke iz List1!A1:B1,
če pa najde premakne podatke v vrstici za 20 mest v levo, ter v celico B odgovarjajoče vrstice vpiše podatek iz List1A2
Koda na list2 začne pisati v drugo vrstico.

    ' poišče če je na list2 v koloni A že podatek iz List1!A1
    Set NAJDI = Worksheets("List2").Range("A:A").Find(Worksheets("List1").Cells(1, "A").Value, LookIn:=xlValues)
    If NAJDI Is Nothing Then
        ' Če ne najde texta v prvi vrstici
        ZadnjaVrstica = Worksheets("List2").Cells(Worksheets("List2").Rows.Count, 1).End(xlUp).Row
        ' Doda podatke iz lista 1 A1 in B1
        Worksheets("List2").Range(Cells(ZadnjaVrstica + 1, "A"), Cells(ZadnjaVrstica + 1, "B")).Value = Worksheets("List1").Range("A1:B1").Value
    Else
        ' premakne celice v desno
        Worksheets("List2").Range(Cells(NAJDI.Row, 22), Cells(NAJDI.Row, 3)).Value = Worksheets("List2").Range(Cells(NAJDI.Row, 21), Cells(NAJDI.Row, 2)).Value
        ' vpiše novo vrednost v celico B
        Worksheets("List2").Cells(NAJDI.Row, 2) = Worksheets("List1").Cells(1, "B").Value
    End If
No comment

_IKE_ ::

@smetko .....sem že, oziroma so mi že rešili težavo. Vseeno pa hvala za odgovor!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Excel: tiskanje po vrsticah

Oddelek: Pomoč in nasveti
71100 (1013) luksorzi
»

makro v excelu

Oddelek: Programska oprema
61532 (1163) thor24
»

[EXCEL] Pogojno kopiranje na drug list

Oddelek: Programiranje
61772 (1694) StratOS
»

Makroji v excelu

Oddelek: Programska oprema
62466 (2360) smetko
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585649 (5112) steev

Več podobnih tem