Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: DDE-link VB-koodin suorituksen lähteenä

Cratokaster [10.02.2010 13:06:34]

#

Tervehdys putkaan, uusi käyttäjä esittäytyy!

Eli ongelma jota en osaa ratkaista on seuraava:

Minulla tulee exceliin dataa DDE-linkin välityksellä ja haluaisin siitä edelleen johdetun kaavan dataa talteen. Tuo arvo josta haluaisin dataa talteen esim. 10 viimeisintä havaintoa , muuttuu noin 5 min. välein.

Tuon koodin osaan kyllä rakentaa, millä saan noi arvot talteen. Mutta miten kirjoitan tuon niin, että kun työkirjan (taul1)oleva DDE-linkin arvo muuttuu ja muuttaa kaavaa (taul2), niin ohjelma poimii DDE-linkin arvosta johdetun kaavan arvon talteen soluun "X".

Lyhyesti:

Siis pitäisi saada ohjelma suorittamaan, kun solussa olevan kaavan arvo muuttuu sen johdosta että DDE-linkin arvo muuttuu. Siis DDE-linkin arvo ei ole oleellinen, vaan siitä johdetun kaavan.

Sekava ehkä, mutta annan lisätietoja. Kiitos jos joku jaksaa paneutua!

Cratokaster

Cratokaster [10.02.2010 14:43:37]

#

Lisään vielä esimerkin mitä haen.

Alla oleva koodi kopioi solun C12 arvon soluun F12, aina kun syöttää uuden muuttuvan arvon soluun C12. Haluaisin siis tuon kopioinnin tapahtuvan solussa olevan arvon muutoksesta(en uuden arvon syöttämisestä), jonka aiheuttaa DDE-linkin arvon muuttuminen.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("C12")) Is Nothing Then

Range("C12").Copy
Range("F12").PasteSpecial xlPasteValues
Application.CutCopyMode = False

End If

End Sub

Mod. lisäsi kooditagit

neau33 [12.02.2010 02:36:28]

#

Moikka Cratokaster!

Kaytä .SetLinkOnData metodia elikä pukaa toi sun koodi erilliseen aliohjelmaan, joka sitten suoritetaan linkin päivittymisen yhteydessä
ActiveWorkbook.SetLinkOnData(Name, aliohjelman_nimi)

Cratokaster [12.02.2010 10:52:36]

#

Joo kiitos Nea! Tämä tuntuu toimivalta ratkaisulta tuohon kohtaan. Muutama ongelma vielä ratkaisematta, eli nyt töihin! Ensi viikolla pitäisi olla käytössä tämä sovellus.

Ck

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta