VBA, täytä nimetyssä alueessa, jossa on rivi ja sarake -otsikot, solu jonka otsikot tiedetään

Anonyymi

Tarvitsisin VBA velhon apua, kuinka tämä saadaan aikaan tyylikkäästi? Työsivulla on nimetty alue: "munTietokanta". Siinä on ensimmäisellä rivillä on sarakeotsikot ja ensimmäisellä sarakkeella on riviotsikot.

VBA:ssa riviotsikko, sarakeotsikko, sekä data joka pitää laittaa siihen soluun joka on ko rivi/sarake risteyskohdassa, ovat kaikki tiedossa.

Yritän rakentaa CSV tiedostosta, jossa on rivi riviltä erotettuja tietoalkiota, 2-uloitteista Excel taulukkoa. CSV on rivi riviltä muotoa: "Artikkeli; turhaa; Ominaisuus; turhaa; Määrä; turhaa" ja sen saan helposti VBA luupissa Array() muotoon ja siitä "Artikkeli" on riviotsikko, "Ominaisuus" on saraketosikko ja "Määrä" on se mikä pitää panna ko risteyskohtaan.

Mutta, en voi uskoa että VBA:ssa ei ole valmista toimintoa siihen, että saisin helposti mätkäistyä "Määrä" arvon siihen soluun joka on "Artikkeli" ja "Ominaisuus" otsikkojen risteyksessä, en löydä sellaista toimintoa, enkä edes osaa kysyä Goolesta siten että koodia löytyisi.

7

118

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Yksinkertaistan: Työsivulla on nimetty alue "munTietokanta" jonka riviotsikot (vasemmassa laidassa) ovat artikkelien nimiä, ja sarakeotsikot (ensimmäisellä rivillä) ovat sanoja jotka kuvaavat erilaisia ominaisuuksia.

      Sitten, luen VBA:lla tekstitiedostoa rivi kerrallaan ja kultakin riviltä lötyy jokin "Artikkeli", ja sen jokin "Ominaisuus" ja kyseinen arvo.

      Nyt kaipaisin sellaista koodia joka panisi kyseisen arvon siihen soluun joka on kyseisin "Artikkeli" rivin ja kyseisen "Ominaisuus" sarakkeen risteyksessä. Siis funktiota tarkalleen ottaen jonka argumentteina olisi alueen nimetty nimi, rivin otsikkonimi, sarakkeen otsikkonimi sekä arvo.

    • Anonyymi

      Kiva olisi vastata, mutta​ kun oon jo kohta puolivuotta bannissa ja​yllapito ei​saa​asia ratkaistua...
      @Kunde

      • Anonyymi

      • Anonyymi

      • Anonyymi
        Anonyymi kirjoitti:

        Ikävää vain että verkkokortin MAC -osoite ei näy www -palvelimille lainkaan...

        Tietenkin MAC näkyy www _serverillä_, vaikka ei näy http(s) _protokollassa_. Palvelunveloittaja näkee jokaisen konjakinottajan MAC:n serveriltään, ja kun palvelunveloittaja haluaa bannata konjakinottajan, niin se blokkaa hänet MAC:n avulla. IP:n blokkaaminen ei ole tehokasta/hyödyllistä koska konjakinottaja voi vaihtaa IP:nsä noin silmänräpäytyksen aikana.


    • Testi

    • tota Excelin omaa natiivikieltä voi käyttää sitten suoraan excelin solukaavoissa
      eli jos haluat tuotteen 8 ominaisuuden 3
      soluun vaan kaava = tuote8(välilyönti tässä)ominaisuus3

      Valitse "mun tietokanta" ja menusta FORMULAS/CREAT FROM SELECTION määrittele
      TOP ROW ja LEFT COLUMN
      tekstitiedosto muotoa( voit käyttää haluamaasi erotinta,muista fiksata myös koodissa)
      tuote15;ominaisuus15;15
      tuote14;ominaisuus14;14
      tuote13;ominaisuus13;13
      tuote12;ominaisuus12;12
      tuote11;ominaisuus11;11
      tuote10;ominaisuus10;10
      tuote9;ominaisuus9;9
      tuote8;ominaisuus8;8
      tuote7;ominaisuus7;7
      tuote6;ominaisuus6;6
      tuote5;ominaisuus5;5
      tuote4;ominaisuus4;4
      tuote3;ominaisuus3;3
      tuote2;ominaisuus2;2
      tuote1;ominaisuus1;1


      Sub TäytäMunTietokanta()
      Dim Rivi As String
      Dim iFile As Integer
      Dim a
      Dim Tuote As String
      Dim Ominaisuus As String
      'muuta taulukon nimi sopivaksi
      Worksheets("Sheet1").Activate
      iFile = FreeFile
      'muuta polku ja tiedostonnimi sopivaksi
      Open "C:\Kunde\koe.csv" For Input As #iFile
      Do Until EOF(1)
      Line Input #1, Rivi
      ' fiksaa tarvittaessa erotin
      a = Split(Rivi, ";")
      Tuote = a(0)
      Ominaisuus = a(1)
      Intersect(Range(Tuote), Range(Ominaisuus)) = a(2)
      Loop
      Close #iFile
      End Sub

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

    Luetuimmat keskustelut

    1. Olet taitava

      monessa asiassa. Myös siinä, miten veit sydämeni. Äkkiarvaamatta, pikkuhiljaa. Yhtäkkiä huomasin että minusta puuttuu jo
      Ikävä
      74
      7484
    2. Sinällään hauska miten jostakin

      jaksetaan juoruta vaikka mitä. Jakorasia yms. Raukkamaista toimintaa. Annetaan jokaisen elää rauhassa eikä levitellä per
      Ikävä
      58
      3173
    3. Mikä ihme sai sut käyttäytymään

      Niin helvetin törkeästi mua kohtaan, jos kerta olet ihastunut?
      Ikävä
      34
      2420
    4. Miten voit manipuloida katsojalukuja?

      Palstatrolli ja väsynyttä sontaa palstalle suoltava Varmakkakkiainen on viime aikoina vedonnot siihen, että hänen ketjuj
      Ateismi
      7
      2060
    5. Osuuspankki Kuhmo!

      Ei pysty pitämään yhtä Otto pankkiautomaattia toiminnassa Ksupermarketin kanssa,20 vuotta sitten Kuhmossa oli neljä auto
      Kuhmo
      31
      1996
    6. Voi helvetti

      Mihin olet mut ajanut.
      Ikävä
      20
      1928
    7. Tiedät etten tiedä

      Mitä pitäisi tehdä.
      Ikävä
      13
      1877
    8. Rakkaalleni!

      Halusin tulla kertomaan, että sinua ajattelen ja ikävöin vaikka olen sukuloimassa. Meinasin herkistyä, kun tykkään sinus
      Tunteet
      15
      1653
    9. Työttömyys kasvaa

      Onneksi persujen kannatus ei kasva.
      Perussuomalaiset
      52
      1588
    10. hyvää yötä.

      toivottavasti sulla oli kiva jouluaatto. 🤍
      Ikävä
      18
      1579
    Aihe