Excel: funkce řádky asi, už si nevím rady Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Majkie79
nováček
Příspěvky: 6
Registrován: leden 12
Pohlaví: Muž
Stav:
Offline

Excel: funkce řádky asi, už si nevím rady

Příspěvekod Majkie79 » 03 led 2012 18:19

Zdravím Vás,

jsem tu nový a myslím, že toto asi bude docela zapeklité, snad se mi podaří zjednodušit a vysvětlit zadání tak, aby to bylo k pochopení.

Na List1 mám tabulku se seznamem aktuálně prodaných produktů, na řádku je ID produktu, název a hlavně počet prodaných kusů dané položky.
Na Listu 2 se mi díky funkci Svyhledat a spárováním dle ID produktu na řádcích vyhledají z další excel tabulky různé atributy daných produktů, které slouží jako zdroj dat pro vytvoření štítků v aplikaci Word (to jen pro představu).

Problém je v tom, že tabulka na Listu2 prozatím neumí reagovat na množství prodaného každého produktu, tzn. že se mi sice vypíšou prodané produkty a potřebné atributy zboží pro tisk štítků, ale jen v poměru 1 artikl(bez ohledu na počet prodaných ks daného artiklu), tj. jeden řádek na listu2, tj. jeden štítek.

Potřeboval bych vymyslet změť funkcí, aby na základě počtu prodanéh produtku uvedeného na Listu1 reagoval List 2 správným počtem duplikací řádku daného artiklu a tedy vytvoření správného podkladu pro tisk štítků.

Zkusím jednoduchý příklad:

List 1
ID produktu ; Název ; Počet prodaných ks
985001 ; Sporťák modrý ; 2
985010 ; SUV Fialový ; 3

Požadovaný stav na List2

ID produktu ; Název ; Věk ; Varování
985001 ; Sporťák modrý ; 3roky+ ; Pozor obsahuje malé části...
985001 ; Sporťák modrý ; 3roky+ ; Pozor obsahuje malé části...
985010 ; SUV Fialový ; 3roky+ ; Pozor obsahuje malé části...
985010 ; SUV Fialový ; 3roky+ ; Pozor obsahuje malé části...
985010 ; SUV Fialový ; 3roky+ ; Pozor obsahuje malé části...

No tak nevím, jestli je to pochopitelné.. budu rád, když se pokusíte najít chvilku zkusit nalézt nějaké řešení... Nebráním se ani VBA řešení.

Předem veliký dík.

Michal

Reklama
d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod d1amond » 03 led 2012 19:10

Odkud se vezmou věk a varování a jak poznám z tabulky 1, kolik položek se má generovat? Celá tabulka?

Navrhuju, řádky které se budou generovat označit. Buďto výběr, nebo nějakým příznakem (0/1).
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Majkie79
nováček
Příspěvky: 6
Registrován: leden 12
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod Majkie79 » 03 led 2012 21:26

ad1: odkud se berou věk a varování? Věk, varování a samozřejmě mnoho dalších atributů se do jednotlivých sloupců tahají z externí databáze informací o produktench pomocí fce SVYHLEDAT - pojítkem je ID produktu.

Ad2 jako poznám z tab. 1 kolik ks (tedy shodných řádků) se má generovat? Do tabulky 1 se mi už z objednávky automaticky dostává informace o počtu zakoupených ks - v příkladě v původním dotazu je uvedeno u produktu 985001 2ks, u produktu 985010 3ks

Jen pro doplnění a úplnost - dnes tabulka 2 funguje bezvadně co do obsahu takto:

ID produktu ; Název ; Věk ; Varování
985001 ; Sporťák modrý ; 3roky+ ; Pozor obsahuje malé části...
985010 ; SUV Fialový ; 3roky+ ; Pozor obsahuje malé části...

nejsem však schopen dosáhnout těch požadovaných duplikací již exsitujích řádků podle počtu prodaných kusů z tabulky 1

Asi to bude velesložitost, což? Dneska ty duplikace dělám ručně, ale při větších objednávkách mě to dost nebaví a tuším, že excel je téměř všehoschopný... ale asi jen ve správných rukou.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod cmuch » 04 led 2012 07:42

Ahoj,
pokud si do listu 2 do nějakého sloupce dáš počet ks a tento sloupec definuješ v tomto makru tak by ti to mohlo pomoci.
na řádku Set bunka = Range("C2") dáš sloupec kde máš ty ks.
Potom zpusť makro, musíš mít aktivní list 2, které můžeš vložit do standartního modulu.
Předtím si udělej zálohu kdyby se nepovedlo :D

Kód: Vybrat vše

Sub DuplikovatRadky()
    Dim bunka As Range
    ' 1. bunka s počtem ks
    Set bunka = Range("C2")
    Do While Not IsEmpty(bunka)
        If bunka > 1 Then
            Range(bunka.Offset(1, 0), bunka.Offset(bunka.Value - 1, _
                0)).EntireRow.Insert
            Range(bunka, bunka.Offset(bunka.Value - 1, 1)).EntireRow.FillDown
        End If
        Set bunka = bunka.Offset(bunka.Value, 0)
    Loop
 End Sub

Majkie79
nováček
Příspěvky: 6
Registrován: leden 12
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod Majkie79 » 04 led 2012 09:33

Zdravíčko,

funguje to téměř báječně. Makro proběhne správně a řádky se naprosto podle zadání a zadaného počtu zduplikují na konci operace však vyběhne hláška:

"Run-time Error '13'
Time Mismatch"

Při Debug se žlutě probarví odstaveček:

Range(bunka.Offset(1, 0), bunka.Offset(bunka.Value - 1, _
0)).EntireRow.Insert


Jinak to běhá parádně.. veliký dík.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod cmuch » 04 led 2012 16:39

Ahoj,
je to tím, že v nějaké buňce tvého sloupce je něco jiného než číslo (od 2 řádku níž).
Zkus zkontrolovat.

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod d1amond » 04 led 2012 17:37

A co třeba jednu malou kontrolu, zda jde o číslo? Uživatelé blbnou občas.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady

Příspěvekod cmuch » 04 led 2012 19:18

To je pravda,
Tady je menší náprava.

Kód: Vybrat vše

Sub DuplikovatRadky()
    Dim bunka As Range
    ' 1. bunka s poètem ks
    Set bunka = Range("C2")
    Do While Not IsEmpty(bunka)
      If Not IsNumeric(bunka) Then
        Set bunka = bunka.Offset(1, 0)
      End If
        If bunka > 1 Then
            Range(bunka.Offset(1, 0), bunka.Offset(bunka.Value - 1, _
                0)).EntireRow.Insert
            Range(bunka, bunka.Offset(bunka.Value - 1, 1)).EntireRow.FillDown
        End If
        Set bunka = bunka.Offset(bunka.Value, 0)
    Loop
  MsgBox "Hotovo"
End Sub

Majkie79
nováček
Příspěvky: 6
Registrován: leden 12
Pohlaví: Muž
Stav:
Offline

Re: Excel: funkce řádky asi, už si nevím rady  Vyřešeno

Příspěvekod Majkie79 » 06 led 2012 12:35

Paráda, funguje to parádně..

Moc díky za pomoc všem.

M.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti