Excel ongelma - tiedon kerääminen

Viestiketju Windows -ongelmat -osiossa. Ketjun avasi tmm68 09.09.2008.

  1. tmm68

    tmm68 Regular member

    Liittynyt:
    03.01.2005
    Viestejä:
    677
    Kiitokset:
    0
    Pisteet:
    26
    Minulla on iso excel-taulokko - 1500 riviä. Joka rivillä on kategoria. Erilaisia kategorioita on 15.
    Mikä on helpoin tapa saada omiin välilehtiin kunkin kategorian kaikki tiedot helpoiten?
    Tiedän, että excelistä löytyy funktio, jolla voi hakea tietoa rivi kerralla mutten muista ko. funktion nimeä/käyttötapaa. Onko kellään tietoa? Tai tuleeko muita ratkaisuja mieleen?

    Huom! taulukkoa päivitetään jatkuvasti eli ratkaisun pitää olla dynaaminen ja mukautua muokkauksiin ilman suurempaa manuaalista muokkausta. Hyväksyn ajatuksen että ensimmäisellä kerralla teen kaikille 15 kategorialle omat välilehdet käsin.

    edit
    Offset taitaa olla se komento, jota muistelen.
     
    Viimeksi muokattu: 10.09.2008
  2.  
  3. L00P

    L00P Regular member

    Liittynyt:
    28.02.2007
    Viestejä:
    144
    Kiitokset:
    0
    Pisteet:
    26
    VBA
     
  4. tmm68

    tmm68 Regular member

    Liittynyt:
    03.01.2005
    Viestejä:
    677
    Kiitokset:
    0
    Pisteet:
    26
    ...ei mitään valmista esimerkkirutiinia heittää? Pelkään pahoin, että VBA on se toimivin ratkaisu.
     
  5. BforeDusk

    BforeDusk Senior member

    Liittynyt:
    15.09.2006
    Viestejä:
    6,570
    Kiitokset:
    7
    Pisteet:
    118
    Excel ei ole kehuttavasti hallussa.
    Excel tiedon kerääminen hakusanat googleen. Löytyykö apua? mureakuha?
     
  6. L00P

    L00P Regular member

    Liittynyt:
    28.02.2007
    Viestejä:
    144
    Kiitokset:
    0
    Pisteet:
    26
    Tollasen tossa pikasesti kirjottelin joku kuka osaa VBA:ta paremmin voipi korjailla virheitä. Eiköhän tolla pääse kuminkin alkuun.
    EDIT Niin ja kategorioiden lopussa pitää olla tietenkin tuo "END"

    Sub lehdille()

    Dim i, k, exists, sheet_nro As Integer

    Worksheets(1).Activate
    ActiveSheet.Cells(1, 1).Activate
    i = 1

    Do
    'kategorioiden alun sijainti Cells(rivi,sarake) muuta alkurivi ylemmäs i=1 kohtaan
    If Sheets(1).Cells(i, 1) <> "" Then
    exists = 0

    'Check if category sheet allready exists
    For y = 1 To Worksheets.Count
    If Sheets(y).Name = LTrim(Str(Sheets(1).Cells(i, 1).Value)) Then
    exists = 1
    sheet_nro = y
    Exit For
    End If
    Next y

    'If not exist then create
    If exists = 0 Then
    ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count), Count:=1
    ActiveSheet.Name = Sheets(1).Cells(i, 1)
    Worksheets(1).Activate
    ActiveSheet.Cells(1, 1).Activate
    sheet_nro = Worksheets.Count
    End If

    'Next put info to category sheet
    'Loop while first empty row is finded
    k = 1
    Do While Sheets(sheet_nro).Cells(k, 1) <> ""
    k = k + 1
    Loop

    'copy row from "MAIN"-sheet
    Worksheets(1).Rows(i).Copy
    'paste clipboard to correct location
    ActiveSheet.Paste Destination:=Worksheets(sheet_nro).Rows(k)

    End If

    i = i + 1
    Loop While Sheets(1).Cells(i, 1).Value <> "END"

    End Sub
     
    Viimeksi muokattu: 12.09.2008

Jaa tämä sivu