< návrat zpět

MS Excel


Téma: Posun obsahu buňky v řádcích rss

Zaslal/a 23.5.2015 10:18

Prosím o pomoc s vytvořením kódu pro posun vždy poslední buňky o různou vzdálenost v různém počtu řádků. Názorněji ukazuje přiložený obrázek. Počet řádků se mění. Posun v jednom řádku o přesný počet není problém, ale o různý počet a pro n řádků potřebuji pomoc. Všem děkuji za nápady.

Příloha: jpg25102_tab.jpg (28kB, staženo 39x)
25102_tab.jpg
Zaslat odpověď >

Strana:  1 2   další »
#025104
elninoslov
No to je zasa popis. Takže otázky:
1. V Head1 sú vždy data ? Teda sa dá považovať riadok za zaplnený keď sú v tomto stĺpci data ?
2. Tento stĺpec Head1, ak je ako jediný zaplnený, tiež sa má "posunúť" do stĺpca Head5, tak ako stĺpce Head2, Head3, Head4?
3. Čo znamená to "posunúť" ? Ak to, že sa skopíruje posledná bunka z rozsahu Head2-Head4 (príp. Head1-Head4 viď vtššie) do bunky Head5, tak OK. Ak ale "posunúť" znamená presun, tak to znamená, že nikdy sa nedostaneš na ďalšiu bunku. Napr. zistíme zápis do Head3, a toto presunieme do Head5, čiže Head3 je opäť prázdna. Na Head4 sa teda ani nedostaneš (za predpokladu že pôjdeš doradu)
...citovat
#025105
avatar
Děkuji za reakci. Fungovat by mělo, tak jak je to v přiloženém souboru, ale pomocí rozumnějšího kódu. Tedy vždy přesunout text, který obsahuje poslední vyplněná buňka v řádku do Head 5. Řádky se mohou měnit tzn., že jednou mám tabulku s 5 řádky a jednou s 150 a vždy potřebuji najít poslední s textem a daný text přesunout do Head5.
1. V Head 1 je vždy text
2. ano pokud je Head1 zaplněný tak také přesunout do Head5
Příloha: zip25105_posun_do_head5.zip (14kB, staženo 17x)
citovat
#025106
avatar
Ještě doplnění k bodu 2., po kontrole tabulek je vždy zaplněn Head 1 a Head 2 tzn., že by snad mohlo jít použít pro vyhledání vždy End(xlToRight).citovat
#025108
elninoslov
Nech sa páči.
Najskôr som myslel, že to má byť hneď pri zmene nejakej bunky, preto som vravel, že to nemá logiku, lebo by sa nikdy nič iné okrem práve zapísanej bunky, nepresunulo. Na tlačítko to už zmysel má.
Příloha: rar25108_posun_do_head5.rar (17kB, staženo 15x)
citovat
#025109
avatar
Velice děkuji za pomoc, funguje perfektně.citovat
#025110
avatar
Ještě jedna drobnost, v případě, že bych potřeboval variantu, když Head1-Head5 jsou již vyplněny, tak data ponechat a nepřepsat jej z Head4. Viz přiložený soubor.Děkuji.
Příloha: zip25110_posun_do_head5-v2.zip (14kB, staženo 15x)
citovat
#025111
avatar
@elninoslov
Aj tak sa dá prohramovať. 2

Sub Posun()
For Each bunka In Range("A2", Range("A2").End(xlDown))
bunka.End(xlToRight).Cut bunka.Offset(, 4)
Next bunka
End Subcitovat
#025114
elninoslov
Presne takto jednoducho - to nefunguje. Head1 tam stále necháva, nikdy ho nezmaže, aj keď to je podmienka. Preto som to trochu "zkomplikoval". Pretože ak to urobíme tak, aby sa zmazal Head1, tak ako sa má, tak nám ostane v Head5 posledný záznam. Ten by rovnako nebol nikdy zmazaný. Preto som tam musel dať kontrolu celej šírky oblasti na posledný riadok. Aby sa aj toto eliminovalo.
Tak isto tento Váš kód nefunguje, keď sú zaplnené Head1 až Head4. Pretože vtedy xlToRight vracia odkaz na Head5, kde je výsledok. Čiže vystrihne výsledok a vloží ho na to isté miesto, na výsledok. Neberie poslednú hodnotu, čiže Head4.
...

EDIT:
@Michal_85:
Iba vymeniť
Cells(i + 1, Posl) = blank
za
If Posl <> 4 Then Cells(i + 1, Posl) = blankcitovat
#025115
avatar
@elninoslov.
Reagoval som na tvoj prvý súbor. Keby tam mal 20000 riadkov, tak to by si sa ukódoval. 2
S tým Head1 máš pravdu. Len mi nie je jasné, či presne to chcel aj zadávateľ.
Ale ak je zaplnené všetko po Head4 dokonca aj Head5, tak to funguje podľa zadania.

Ale keď inak nedáš, tak takto.

Sub Posun()
For Each bunka In Range("A2", Range("A2").End(xlDown))
bunka.Offset(, 5).End(xlToLeft).Cut bunka.Offset(, 4)
Next bunka
End Subcitovat
#025116
avatar
Velice děkuji za komentáře a především za kódy, nápady i diskusi.citovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje