Tietoja toisesta Excel-taulukosta

ehkäotin

Terve!

Mulla pyörii ohjelma excelissä, josta pitäisi saada poimittua tietoja toiseen taulukkoon.
Haettavana tietoina on tuotteen nimi (B3-B12), hinta (C3-C12) ja määrä (D3-D12). Tuotteita voi olla samaan aikaan kymmenen.
Tällaisia settejä tulee päivässä useita, joten ne pitäisi saada siellä toisessa excelissä vielä niin, että uudemmat menevät edellisien alapuolelle.
Se koska tiedot hakee, niin voisi olla vaikka 5 min välein.

Tack!

18

648

    Vastaukset 18

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ehkäen

      Kiitos paljon avusta!

      Vielä jos saisin asiasta rautalankaversion :)
      Elikkä tiedosto josta tiedot haetaan on nimeltään hinnasto.xls ja jatkossa voi olla niin että siellä tulee jopa neljälle sheetille tietoja.
      Ja tiedosto johon tiedot tuodaan on nimeltään yhteenveto.xls.
      Ja huomasin et on vielä parempi jos tiedot haettaiskin silloin kun tiedostossa olevaa aikaa on jäljellä 30 sek sen viiden minuutin sijaan. Tällä saadaan tiedoista keskenään paremmin vertailukelpoisia.

    • MitäVäliäSen

      Vielä jos viitsit hieman auttaa.
      Ohjelma hakee nyt kertaalleen tiedot kun painan run-nappia vba:ssa.
      Sen jälkeen herjaa seuraavaa:HaeTiedotSuljetusta ei voi suorittaa. Makro ei ehkä ole käytettävissä tässä työkirjassa, tai kaikki makrot on ehkä poistettu käytöstä.

      Sit siirsin laskurin, joka laskee aikaa alaspäin tuonne yhteenveto.xls sheet1:sen soluun B1. Kuinka muutan tuohon kaavaan, että kun toi lukema B1:ssä on alle 30 niin tämä vba hakee ne tiedot sieltä hinnastosta.

      Onko sillä jotain vaikutusta asiaan että mulla on kokoajan molemmat taulukot auki, kun tossa kuitenkin puhutaan suljetusta? Toi hinnasto mulla pitääkin olla kokoajan auki.

      Kiitoksia edelleen todella paljon viitseliäisyydestäsi!

    • Calcis

      Vba ei varsinaisesti ole minun heiniä,mutta jos jotain ymmärsin niin kunden makrossa kohta:
      "Aika = Now TimeSerial(0, 0, 30)
      Application.OnTime Aika, "HaeTiedotSuljetusta"

      ..tulisi korvata Do loopilla joka seuraa B1 arvoa ja sitten Jos lausella:

      Jos B1 = 30sekuntia niin sitten suoritetaan määritelty tietojen haku.

    • onetimeyet

      Ei sit lähde millään toimimaan.
      Jospa tehtäis niin, että teenkin tähän hinnasto.xls uuden välilehden taul2, jonne kerätään noi tiedot.
      Elikkäs kun B1 oleva timeri on alle 30 niin silloin tänne taul2:seen tulee kopioitua B(3-12), C(3-12) ja D(3-12) olevat tiedot.
      Ja taas seuraavan kerran kun toi ehto B1:ssä täyttyy niin tiedot kopioituvat edellisten alapuolelle.

    • jeppisjees

      Näin olen sen nyt tehnyt, mut kun tämä ei hae tietoja automaattisesti, kylläkin hakee jos to aika ehto täyttyy kun painaa Run-nappia.

      Sub Siirrä()
      Dim vika2 As Integer
      Dim Alue As Range
      Dim i As Integer
      For i = 9 To 19
      If (Worksheets("hinnasto").Range("F5").Value < 7 And Worksheets("hinnastol").Range("F5").Value > 3) Then
      vika2 = Worksheets("yhteenveto").Range("B65536").End(xlUp).Row 1
      Worksheets("hinnasto").Range("B" & i).Copy Destination:=Worksheets("yhteenveto").Range("B" & vika2)
      Worksheets("hinnasto").Range("G" & i).Copy Destination:=Worksheets("yhteenveto").Range("G" & vika2)
      End If
      Next
      End Sub

    • Calcis

      Kun ei tiedä mitä nuo F5 ehtoarvot 7>

    • hippelispoppeli

      Tuollasen virheilmoituksen antaa;
      Compile error:syntax error
      ja sen jälkeen ku painan ok niin antaa punaiseksi tuo Exit Loop.

      Ja tosiaan sekunneista puhutaan tuossa F5:ssä.

      • Calcis

        "Tuollasen virheilmoituksen antaa;
        Compile error:syntax error
        ja sen jälkeen ku painan ok niin antaa punaiseksi tuo Exit Loop."

        Minä sekoilin, pitää olla Exit Do eikä Exit Loop


    • Calcis

      vba sitten toimii erilailla kuin oo basic ... mutta jos tuo toimisi

      Sub Siirrä()
      Dim vika2 As Integer
      Dim Alue As Range
      Dim i As Integer

      Do
      If Worksheets("hinnasto").Range("F5").Value = 6 Then
      For i = 9 To 19
      vika2 = Worksheets("yhteenveto").Range("B65536").End(xlUp).Row 1
      Worksheets("hinnasto").Range("B" & i).Copy Destination:=Worksheets("yhteenveto").Range("B" & vika2)
      Worksheets("hinnasto").Range("G" & i).Copy Destination:=Worksheets("yhteenveto").Range("G" & vika2)
      Next
      End If
      Loop Until Worksheets("hinnasto").Range("A1").Value = 1
      End Sub

    • jepuneula

      Kiitos paljon kun viitsit jelpata :)
      Nyt toi jumittaa koko excelin, jääkö tuossa sitten looppi jotenki päälle vai mikä?
      Mä en itse vielä kauheesti ymmärrä tätä ohjelmointia, mut pikkuhiljaa alkaa itekkin jotain oppia.

      • Calcis

        Looppi ja makro on päällä niin kauan kun hinnasto taulukon A1 soluun kirjaa arvon 1
        Jos siinä on sitten liikaa yhtäaikaisia tapahtumia niin se voi sitten jumittaa exelin, kannattaa kokeilla sitä Sleep 500 tai Sleep 1000 määritystä, se voi auttaa.

        OO basicissä ei ole tuota Application.OnTime toimintoa vaan aika laskuri suoritetaan vastaavalla Do loopilla looppaamalla Now() arvoa, jolloin calcissa rakentaisin tuon "siirä" makron toiminnon sen laskuri makron sisään.


    • Calcis

      kokeile lisätä siihen laskuri makroon seuraava:

      Deadline = tähän solu jossa on päättymisaika.Value - TimeSerial(0, 0, 30)
      Application.OnTime Deadline, "Siirrä"

      ... Siirrä on sitten seuraava:

      Sub Siirrä()
      Dim vika2 As Integer
      Dim Alue As Range
      Dim i As Integer
      For i = 9 To 19
      vika2 = Worksheets("yhteenveto").Range("B65536").End(xlUp).Row 1
      Worksheets("hinnasto").Range("B" & i).Copy Destination:=Worksheets("yhteenveto").Range("B" & vika2)
      Worksheets("hinnasto").Range("G" & i).Copy Destination:=Worksheets("yhteenveto").Range("G" & vika2)
      Next
      End Sub

    • taulukon moduuliin missä se laskuri on....

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Range("B1") = 30 Then
      Range("B9:B19").Copy Worksheets("yhteenveto").Range("B65536").End(xlUp).Offset(1, 0)
      Range("G9:G19").Copy Worksheets("yhteenveto").Range("G65536").End(xlUp).Offset(1, 0)
      End If
      End Sub

      Keep EXCELing
      @Kunde

    • jepuneula

      Nonii, sain homman pelittämään seuraavalla koodilla:
      Muokkasin tuon laskurin niin, että sillon kun se on yli 8 tai alle 3, niin antaa 0 muuten 30.
      Tuo tekee sen että se antaa toisinaan useamman kerran samat tiedot, mutta kun kaksoiskappaleet saa helposti yhdellä napilla poistettua, niin ei ole ongelma.

      Private Sub Worksheet_Calculate()

      Dim vika2 As Integer
      Dim Alue As Range
      Dim i As Integer
      If Worksheets("Taul1").Range("B1").Value = 30 Then
      For i = 9 To 19
      vika2 = Worksheets("Taul1").Range("B65536").End(xlUp).Row 1
      Worksheets("Hinnasto").Range("B" & i).Copy Destination:=Worksheets("Taul1").Range("B" & vika2)
      Worksheets("Hinnasto").Range("G" & i).Copy Destination:=Worksheets("Taul1").Range("G" & vika2)
      Next
      End If
      End Sub

      Nyt onkin sitte jatkotoimenpiteen aika :)
      Mites onnistuu näiden kopioitujen tietojen siirtäminen taul5:een siten että jos sieltä ei löydy vastaavaa nimeä niin se kopioituu sinne, mutta jos sieltä jo sellainen löytyy niin sit se kopioi sen hintatiedon edellisen hintatiedon viereiseen sarakkeeseen.
      Kiitoksia paljon avusta!

    • miksi pitää luupata koodissasi???

      no uuteen kyssäriin löytyy vastaus noista

      http://keskustelu.suomi24.fi/search/s24search/(haejasiirrä OR etsijasiirrä) sort_name:"kunde"?sort=created&perpage=25&term_keywords=

      eli haetaan tietoa ja jos palautuu nothing (ei löytynyt ) siirretään muuten skipataan


      Keep EXCELing
      @Kunde

    • jepuneula

      En tiiä miks on luuppi, se ny vaan lähti tolleen toimimaan :)
      Yritin tuota muokkaamalla saada toimimaan, kun mullakin tiedot on lihavoituna jo valmiiks.
      http://keskustelu.suomi24.fi/node/9831473#comment-49219614
      Mut ei kyllä taito näköjää riitä et osaisin muokata tuosta itselle toimivan systeemin.
      Joten jos viitsit vielä sen verran jelpata.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nyt se syksy on sitten alkanut

      Esimerkiksi tänään sataa aamusta iltaan, ja nytkin.
      Maailman menoa
      43
      945
    2. Minä en ole koskaan

      Rakastanut ketään toista yhtä paljon kuin sinua
      Ikävä
      95
      933
    3. Tiesitkö? Jorma Uotisen EX-rakas on Helena Lindgren - Nämä ovat välit nyt: "Me ollaan..."

      Jorma Uotinen ja Helena Lindgren olivat avoliitossa v. 1982-1999. Pariskunta oli aikansa näyttävä julkkispari, missä i
      Kotimaiset julkkisjuorut
      19
      775
    4. Vähän pitää

      Kiusia ja näyttää
      Ikävä
      116
      731
    5. Anteeksi J-mies

      Anteeksi että myötävaikutin siihen että rakastuit minuun, jota et voi koskaan saada. Viimeksi kun näimme ja katselimme t
      Ikävä
      80
      678
    6. Olet nainen ollut vaikein rasti

      Eniten olet tunteitani myllännyt ja niitä kuluttanut, ja tuottanut. 🤔
      Ikävä
      34
      624
    7. Taidat olla

      Luovuttanut jo minun suhteeni osalta?
      Ikävä
      43
      621
    8. Minä muistan

      Minä muistan sinut nauravana. Sellaisena, joka sai tavallisenkin hetken tuntumaan vähän kevyemmältä, kuin huoneeseen ol
      Ikävä
      45
      610
    9. Mä voisin rakastua noihin tähti silmiin

      Katseesi on niin lumoava nainen💚.
      Ikävä
      19
      596
    10. Jos tullaan toisiamme vastaan, niin

      pitäiskö pysähtyä ja onnitella?
      Ikävä
      46
      568
    11. Kenen viisautta on ollut laittaa tie väärällä murskeella pilalle

      Kenen viisautta on ollut kun Siimeksen/Kylmänpurontie pantu pilalle kun on ajettu liian karkeaa mursketta. Rengasliikke
      Hyrynsalmi
      20
      545
    12. Voisiko vielä välillemme jotain kehittyä

      Vai heihei ja ei nähdä enää.
      Ikävä
      33
      533
    13. Riittääkö mahkut

      Kaivattuusi 🤭.
      Ikävä
      36
      522
    14. Siinä kävi mies nyt niin että tämä ämmä muuttaa ulkomaille

      Vuonojen maa kutsuu, joten ei hätää. Et kuule minusta enää. 😂 Lycka till! Ämmä riittää.
      Ikävä
      66
      509
    15. Kerro kolme hyvää asiaa

      Kaipaamastasi ihmisestä ja lisää perään onko kaivattusi n vai m 😍
      Ikävä
      25
      502
    16. Ähtäri on taas TV: n ja radion ykkösuutinen

      Uusi podcast on julkaistu ja on nyt kuunneltavissa. Mot on tehnyt hyvää työtä! Mikko Savola ja kepu ei ota mitään vast
      Ähtäri
      44
      486
    17. Mitä muuta on olemassa kuin lisääntyminen

      Jos mies ei pääse lisääntymään niin mikä hänen osansa elämässä on? mitä jää jäljelle? Hän on vain muiden palvelija kok
      Sinkut
      107
      483
    18. Koska Martina viettää aikaansa lapsiensa kanssa

      Äiti vaan juoksee miehen perässä Tallinnassa, Lontoossa, Turussa. Kyllä oli kätilö oikeassa, kun sanoi, että ei olisi ka
      Kotimaiset julkkisjuorut
      132
      460
    19. Tilanteenne

      Onko tilanteenne tällä hetkellä hyvä?
      Ikävä
      44
      454
    20. Miltä tuntuu mies

      Onko vedätetty olo
      Ikävä
      61
      435
    Aihe