Delovni listi

Pomoč pri delu z MS Excelom
Odgovori
joze
Prispevkov: 11
Pridružen: Če Avg 23, 2007 10:05 am

Delovni listi

Odgovor Napisal/-a joze »

Imam veliko količino podatkov ki sem jih v del. list napolnil z SQL poizvedbo.
to so podatki
nap.
datum , mat_sredstvo, cena , količina itd..

Sedaj bi rad naredil da bi mi iz lista 1 naredil toliko novih delovnih listov kolko je različnih artiklov.
Ob vsaki spremembi artikla bi podatke prenesel na nov delovni list
Tako bi na vsakem del. listu rad imel samo izbran artikel.
Ker je teh različnih artiklov veliko (450) bi rad to nekako avtomatiziral.
Kaj mi svetujete, kako se tega lotiti.

Hvala
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pot je samo ena. Potrebno je napisati VBA makro, ki vam bo podatke razbil na liste - Ni druge :wink:
lp,
Matjaž Prtenjak
Administrator
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Tako kot je že admin povedal. Za spremembe bi pa jaz predlagal, da na novem listu, ne bi bil izpisan izdelek kot besedilo ampak bi ga funkcija pobrala iz prvega lista. Poskusite posneti makro in ga prilagoditi. Ko pa se bo zataknilo povejte. :)

Lahko pa vam jaz spišem, samo povejte mi točno koliko je podatkov in to...
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
joze
Prispevkov: 11
Pridružen: Če Avg 23, 2007 10:05 am

Odgovor Napisal/-a joze »

mi lahko dasta kak namig v kodi

kako izločit različne na svoj del. list?
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Kakršenkoli namig vam težko dam, ker ne vem koliko poznate programiranje. Sam algoritem pa je preprost:
  1. Sortirajte podatke
  2. V zanki se sprehodite od prvega do zadnjega zapisa
  3. Če je prebran zapis drugačen od prejšnjega odprite nov list in podatke pišite vanj sicer podatke pišite v trenuten list.
lp,
Matjaž Prtenjak
Administrator
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Če prav razumem je rešitev nekaj v tem smislu:

Koda: Izberi vse

Dim i
i = 1

Do While Not Cells(i, 1).Value = ""  'če prva vrstica ni prazna nadaljuj
    ThisWorkbook.Sheets.Add , Sheets(1)
    Cells(1, 1).formula = "=Glavni!A" & i
    i = i + 1
    ThisWorkbook.Sheets(1).Select
Loop
Zgornja koda vam pogleda v "aktivno" vrstico ter preveri če je polje A prazno. Če je prazno gre ven sicer nadaljuje, ustvari nov list in v celico A1 zapiše funkcijo =Glavni!A1 , ki prevzame vrednost celice A1 na listu "Glavni". Za več celic si kodo prilagodite

:)
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
Odgovori