Post reply

The message has the following error or errors that must be corrected before continuing:
Warning: this topic has not been posted in for at least 356 days.
Unless you're sure you want to reply, please consider starting a new topic.
Note: this post will not display until it has been approved by a moderator.
Other options
Verification:
Please leave this box empty:

What is the name of this forum?:
What is the most visible color in our forum?:
Shortcuts: ALT+S post or ALT+P preview

Topic summary

Posted by paavo
 - Fri 08.01.2016 06:15:10 (UTC+0200)
Ihan kuin tuolla työmaalla :facepalm:
Posted by nyyyps
 - Thu 07.01.2016 22:34:35 (UTC+0200)
Ok.
Ja eihän siinä tarrapohjassa niien tarvinnu olla tietyssä järjestyke4ssä, muihin paikkoihin tarttee, ni sen välilehen voi jättää pois missä sen järjestyksen räpii per menetelmä.
Posted by Lexa
 - Thu 07.01.2016 22:05:30 (UTC+0200)
Eikun just tolla jossa on maksimimäärä, mutta ei kiinteää määrää, ei tule niitä nollia. Kiinteällä tulee kun pitää saada rivit täyteen, tuo syöttää vain tyhjää maksimiin asti.
Posted by nyyyps
 - Thu 07.01.2016 22:03:16 (UTC+0200)
Maksimimäärää ei voi laittaa, koska se täyttää loput solut nollilla.

Tietojen syöttö/nappivälilehti.
Tarravälilehti.
ip-välilehti, jokaiselle menetelmälle oma, sieltä indeksillä valinta mitä menee mihinkin välilehteen ja satunnaisen duplikaatin lisääminen
jne joista vain tietojen syöttö näkyvillä.

ja sama paska vielä toisen ja kolmannen kerran, koska useammanlaiset batchit

nyt nukkumaa
Posted by Lexa
 - Thu 07.01.2016 21:55:00 (UTC+0200)
Tuohan on ihan Excel -kaava, ei VBa -macro. Ja tuossa ois tosiaan kiinteä rivimäärä. Vastaava jossa ois maksimimäärä määritelty, muttei tiukkaa rivimäärää, olisi tämäntyyppinen =IF((BlockSize*(ROW()-ROW(F$14)))+(COLUMN()-COLUMN($F14))>=ROWS($B$4:$B$18),"",OFFSET($B$4,(BlockSize*(ROW()-ROW(F$14)))+(COLUMN()-COLUMN($F14)),0,1,1))

:think:

VBa:


Sub ColumnToTable()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ColumnToTable
' This transforms the column of data with a defined name
' of "ColumnData" to a two dimensional table whose upper
' left cell is named "StartTable". The block size of
' the data in ColumnData is specified by C_BLOCK_SIZE.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   
    Dim ColumnData As Range     ' The original column of data
    Dim RNdx As Long            ' Row index
    Dim CNdx As Long            ' Column index
   
    Dim StartRow As Long        ' Row number of Range("StartTable")
    Dim StartColumn As Long     ' Column number of Range("StartTable")
    Dim N As Long               ' Index into ColumnData
    Dim WS As Worksheet         ' Worksheet reference
   
    Const C_BLOCK_SIZE = 5      ' Block size of data in ColumnData
   
    '''''''''''''''''''''''''''
    ' Initialize the variables.
    '''''''''''''''''''''''''''
    Set ColumnData = Range("ColumnData")
    StartRow = Range("StartTable").Row
    StartColumn = Range("StartTable").Column
    RNdx = StartRow
    CNdx = StartColumn
    Set WS = Worksheets("UsingVBA")
    N = 0
   
    ''''''''''''''''''''''''''''''''''''''
    ' Loop across then down filling
    ' cells with element N of ColumnData.
    ''''''''''''''''''''''''''''''''''''''
    For RNdx = StartRow To (StartRow + (ColumnData.Rows.Count / C_BLOCK_SIZE))
        For CNdx = StartColumn To StartColumn + C_BLOCK_SIZE - 1
            N = N + 1
            WS.Cells(RNdx, CNdx).Value = ColumnData.Cells(N, 1)
        Next CNdx
    Next RNdx
   
End Sub


Ja lähde tälle: http://www.cpearson.com/excel/ColumnToTable.aspx
Posted by nyyyps
 - Thu 07.01.2016 21:30:39 (UTC+0200)
=OFFSET($B$4,(BlockSize*(ROW()-ROW(F$4)))+(COLUMN()-COLUMN($F4)),0,1,1)
Mutta p rivillä.
Mie sen tässä illan aikana ehin melkein hoksia, itelleni lähetin sähköpostin mutta en helkkari alkanu valmiimmaksi tekemään ku ei palkkaa makseta ku kustannuspaikalla vietetystä ajasta.

Excel, koska saan sitten naittaa samaan tiedostoon makron joka tekee tietyllä tavalla muotoillun txt:n joka nimetään uudelleen toiselle tiedostopäätteelle, samaten ku saan luoda samoista näytetunnuksista kolmannella tavalla muotoillun csv:n joka sitten taas nimetään erilaiselle näytetunnukselle, kumpainenkaan näytetunnus ei tietenkään ole excelillä ennestään tiedossa. Näiten kans sitten FSO muistella.
Yksi tiedosto, kaksi nappia kumpaa vain tarvitsee, valitse txt, saa valmis lopputulos. Sen jälkeen sujuu nautakarj laboranttinaisilta. :psp:

Kaiken takana tosiaan se, että tarvitsee vain luoda yks txt, joka on jo lähdössä oikein näytenimineen. Ei tartte kymmentä eri tiedostopohjaa sitten muokata jokaista erikseen, vaan kaikkiin saadaan vietyä yksi ja sama txt.
Posted by Lexa
 - Thu 07.01.2016 21:21:57 (UTC+0200)
Selevä. Ite tekisin Mail mergellä. :jees: olisi helpompi macrottaakin. Mutta jos mulle tulee sulle joku ratkasu malli mieleen niin kerron kyllä.

Joku looppihan tossa vois toimia...
Posted by nyyyps
 - Thu 07.01.2016 21:19:51 (UTC+0200)
On.
Posted by Lexa
 - Thu 07.01.2016 21:13:47 (UTC+0200)
Nyt kun tätä vähän mietin, niin onko jotain erityistä syytä miksi tää pitäis tehdä Excelillä? Wordissahan on ihan tähän tarkoitettu toiminto valmiiksi. :think:
Posted by Lexa
 - Thu 07.01.2016 20:46:15 (UTC+0200)
Juu, ymmärsin mitä hait takaa, mutta en nyt ilmeisesti ihan ymmärrä mitä haet offsetilla. :think:
Posted by nyyyps
 - Thu 07.01.2016 20:38:35 (UTC+0200)
Ei.
Ei ei ei ei ei ei ei.
Excel osaa hakea jo txt:n niinkuin pitää, yksi rivi yhteen soluun, niin että A-sarakkeessa kaikki ovat allekkain, kukin omassa solussaan.
Nyt pitää saada järjestys muutettua niin, että taulukko täyttyy järjestyksessä A1, B1, C1, A2, B2, C2, ...
Eli se pyöräytetään offsetilla taulukoksi.
Mutta tarttee saada se pätkä koodia siihen loppuun, että se täyttää sitä taulukkoa niin pitkään että tulee vastaan tyhjä solu.
Pitänee laittaa se etsimään eka tyhjä solu A-sarakkeessa ja siittä matema tiikalla tekemään taulukko, kun offset tarttee taulukolle jotkut rajat.
Posted by Lexa
 - Thu 07.01.2016 20:29:29 (UTC+0200)
Jos tahdot että yksi txt-rivi on yksi excel tietue, niin delimiter on chr(10) eli rivivaihto.
Tuota kolmeen jakoa pitääkin jo miettiä :think:
Posted by =Juku=
 - Thu 07.01.2016 16:16:18 (UTC+0200)
Oikea periaate jos monta käyttäjää!
Posted by nyyyps
 - Thu 07.01.2016 16:15:05 (UTC+0200)
Ei missään nimessä, koska sen pitää olla niin helppo, että työkaverit osaa sitä käyttää.
Ne painaa nappia, valittee tiedoston, tiedosto aukeaa oikean kokoseksi taulukoksi, sitten painetaan tulostusnappia.
Mie olen melkolailla copypastaamista vastaan varsinki töissä, koska siinä ovat onnistuneet hävittämään näytetunnuksia, siirrelleet vanhoja tunnuksia uusien tilalle, ja lopulta sekottaneet laskutusta ja tulosten raportointia.

Olen jalostanu jo aika hyvin tuota, että alussa luodaan yksi tekstitiedosto, ja sieltä sitten haetaan muille makroille näytetiedot. Mitä vähemmän tarttee kirjottaa uusiksi samaa tietoa, sitä varmemmin vältytään lähettämästä vuoden 2045 näytteiden tuloksia vuonna 2015. :psycho:
Posted by =Juku=
 - Thu 07.01.2016 16:11:47 (UTC+0200)
Aha - siis järjestys on myös tärkeä  -   :serlokkismoke:

Siihen pitänee tehdä laskuri, joka laskee kolmeen ja kopioi nuo 2 saraketta -
Vahinko että on mennyt jo niin kauan tuosta excelin  (ja dBasen) käytöstä, että ei heti sytytä...