< návrat zpět

MS Excel


Téma: Vytvoření nového řádku v Tabulce rss

Zaslal/a 11.12.2019 8:39

Zdravím

Blížím se ke konci s projektem, který nyní řeším a narazil jsem na další problém.

Potřebuji z jednoho listu uložit obsah buněk, přesunout se do druhého listu, vytvořit nový řádek na začátku tabulky a do tohoto řádku vložit data z prvního listu. Vše mi fungovalo až do chvíle, kdy jsem z tabulky v druhém listu musel udělat opravdovou Tabulku a zastavím se na kroku, kdy mi kód prostě nevytvoří nový řádek. Problém je v řádku: Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Musím něco upravit, když se jedná o tabulku?

Sheets("POHYBY").Select
Range("A2:I2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Sheets("ODPIS_MATERIALU").Select
P_Datum = Range("G3").Value
P_DruhMaterialu = Range("A3").Value
P_NazevMaterialu = Range("B3").Value
P_Pohyb = Range("C3").Value
P_MJMaterialu = Range("D3").Value
P_StavMaterialu = Range("H3").Value
P_Doklad = Range("F3").Value

Sheets("POHYBY").Select
Range("A2") = P_Datum
Range("B2") = P_DruhMaterialu
Range("C2") = P_NazevMaterialu
Range("D2") = P_MJMaterialu
Range("G2") = P_StavMaterialu
Range("H2") = P_Doklad
Range("I2") = P_Pohyb

Zaslat odpověď >

icon #045248
avatar
Preco nevyskusas zaznamnik makra?

Nieco na sposob Sheets("NazovSheetu").ListObjects("NazovTabulky").ListRows.Add (1)nefunguje?citovat
#045253
avatar
Bohužel, nefunguje. Nechal jsem to tak, změnil jsem tabulku na obyčejnou oblast a všechny makra poupravil, takže to nyní funguje.

Je to nástroj, kde jsem využil tolik obezliček a nesmyslů, ale ve finále to funguje, takže to v tuto chvíli nechám tak.citovat
icon #045254
avatar
Ja som presvedceny, ze prikaz, ktory som sem dal, pridava riadok na zaciatok Table. Pisal si, ze tvoj kod pada na tomto kroku. Bez prilohy je to varenie z vody.citovat
#045255
avatar
Poprosil bych o číslo chyby a chybové hlášení, těch příčin by mohlo být více.citovat
#045259
avatar

Anonym napsal/a:

Poprosil bych o číslo chyby a chybové hlášení, těch příčin by mohlo být více.

Zdravím Vás

Rozumím, že by bylo mnohem lepší dodat k dotazu také soubor s problémem. Bohužel, potřeboval jsem vyřešit problém a měl jsem na to velmi málo času a navíc jsem musel vycházet z dokumentu, který již jakési makra obsahoval. Tvorbu maker se pokouším dělat jen výjimečně, ale nyní jsem nenarazil na možnost jiného řešení, takže můj aktuální dokument byl plný kódů, kterým jsem úplně nerozuměl, obsahoval mé slepé cesty a nebo pokusy, které by pravý programátor napsal úplně jinak.

V takové situaci mi bylo hloupé odeslat soubor jako přílohu, protože to mou vizitku trochu znehodnocuje.

Nyní jsem v situaci, kdy mi sešit dělá to, co jsem potřeboval, tedy:
- Mám list se skladovými zásobami, tedy umím říci, jaké materiály mám na skladě a jejich počet
- Mám list pro navádění pohybů pro skladníka, takže skladník při příjmu a výdeji dohledá materiál, dodá pohyb a makro zapíše novou hodnotu do skladu
- Mám jakýsi log pohybů, z kterého umím dohledat kdy se jaký materiál přijal a kdy se odebral
- Mám šablonu pro vytvoření skladové karty, která mi pomocí rozšířeného filtru vyexportuje pouze mnou vybraný materiál a následně AutoFiltrem zobrazím mnou vybrané období.

Předpokládám, že pro zkušeného programátora je to jednodušší projekt, ale já jsem to lepil několik dnů, kdy jsem se nevyhnul právě změnám z tabulky na Tabulku a podobně. Proto již v tuto chvíli neumím zapsat číslo chyby, protože došlo ke změnám. Soubor jsem pročistil od kódů, které vím že neměly smysl a nebo nic neovlivnily, takže je možné se kouknout, ale onen zmíněný kód mi prostě nový řádek nevytvořil (nebo jsem jej ladil špatně)

Každopádně, všem děkuji za pomoc
Příloha: zip45259_sklad.zip (334kB, staženo 14x)
citovat
icon #045261
avatar
Asi si nerozumieme. Vo svojom poste som riešil problém: Ako pridať nový riadok na začiatok už existujúcej tabuľky?
Toto a jedine toto, nič viac a nič menej, rieši riadok kódu, ktorý som uviedol. Proste pridá nový prázdny riadok.citovat
#045262
avatar
Ano, takto jsem to myslel.

Mám list, kde jsem potřeboval na začátek tabulky vložit nový a prázdný řádek. To jsem udělal kódem:
Range("A2:I2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow


Po nějaké době jsem musel kvůli jinému makru změnit oblast na tabulku a mým kódem jsem neuspěl. Zkusil jsem tedy řádek nahradit za:
Sheets("ODPIS_MATERIALU").ListObjects("Tabulka1").ListRows.Add (1)
Tohle mi ale nový řádek nevytvořilo. Krokoval jsem pomocí F8, ale tento kód jen projel. Ověřil jsem, zda mám správně název listu a název tabulky.

Proto jsem se rozhodl změnit Tabulku na tabulku a v navazujících makrech jsem změnil návaznosti.

Píšu to proto, že nyní už nevím, zda mi vyskakovalo nějaké chybové hlášení a v mém aktuálním souboru je to uděláno jinak, takže chybu nevyvolám. V každém případě, budu zjišťovat, co vše mám špatně a postupně budu předělávat, takže časem pravděpodobně příjdu na to, kde jsem měl problém a proč mi zaslaný kód nefungoval, když všude jinde fungujecitovat
icon #045263
avatar
Asi nerozumiem. Pozri do prilozeneho suboru - fiktivna tabulka, makro do nej prida riadok. Co presne nefunguje? Prida makro riadok, alebo neprida?
Ak mas ovsem pod tabulkou nejaku inu tabulku, ktora ma iny pocet stlpcov alebo je umiestnena v inych stlpcoch a dochadza k prekryvu stlpcov v tabulkach (nie vsetky stlpce spodnej tabulky su "schovane" pod stlpcami hornej) tak makro fungovat nebude, nakolko ani manualne v takom pripade do tabulky riadky nepridas.
Příloha: zip45263_pom.zip (13kB, staženo 14x)
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Makro smyčka

elninoslov • 18.4. 0:18

Makro smyčka

MilanKop • 17.4. 21:33

Automatické generování souborů

Majki • 17.4. 13:48

Automatické generování souborů

elninoslov • 17.4. 13:27

Automatické generování souborů

Majki • 17.4. 13:25

Automatické generování souborů

elninoslov • 17.4. 13:11

Makro smyčka

elninoslov • 17.4. 13:09