< návrat zpět

MS Excel


Téma: VBA-Tabulky rss

Zaslal/a 31.1.2020 20:41

Ahoj,

řeším problém s tabulkami. Mám takovýhle kod:

n1 = 3
For c = 1 To 100
If Len(Cells(n1, 1)) = 0 Then
Exit For
End If
For radek = n1 To 100000000
If Len(Cells(radek, 1)) = 0 Then
Exit For
End If
Worksheets("Duben").Cells(radek, 1).Copy Worksheets("Prohlaseni").Range("A16")
Worksheets("Duben").Cells(radek, 2).Copy Worksheets("Prohlaseni").Range("B16")
Worksheets("Duben").Cells(radek, 3).Copy Worksheets("Prohlaseni").Range("C16")


Next radek

n1 = radek + 1
MsgBox n1
Next c
End Sub

Tabulka má neznámý počet řádků a je neznámý počet tabulek. Potřebuji, aby mi to vždycky tu tabulku co zkopíruje, tak přeneslo na jiný list a vždy začínalo na stejném místě. Mně se vždycky podaří zkopírovat až poslední hodnotu a přenést to na další list. Nedokázal byste mi někdo pomoc?

Zaslat odpověď >

#045731
avatar
Vlastně bych vždycky potřeboval zkopírovat z měsíce tabulky ve sloupci A, dát je v prohlášení na A16(aby byly pod sebou datumy). Potom to samé B i C. Pak to v prohlášení zase smazat a další tabulka. Mezi tím se to uloží v pdf, ale to už bych zvládnul sám. Tady je kdyžtak soubour https://uloz.to/file/1dhFDDGYdcQ0/vba-tabulky-xlsm. Díky moc všemcitovat
#045738
Stalker
Nedokázal byste mi někdo pomoc?

Na základě Tebou poskytnutých dat?

No jasně, jen budeš muset počkat než se někomu vrátí křišťálová koule z garanční prohlídky.

Zadání:
Tady máte nějaký data, který nazývám tabulky i když tam žádný tabulky nejsou, nesmyslný kód + vágní popis funkce. A ukažte se fešáci.citovat
#045739
avatar
Kdybych ty data kopíroval na stejný list, tak mi to funguje, ale nedokáži, aby se ty data kopírovali na jiný list do stejného místa pokaždé. Zas tak složité mi to nepříjde, jen neznám potřebný kod.citovat
#045740
Stalker
"Kdybych ty data kopíroval na stejný list, tak mi to funguje"

Ne, nefunguje.

"ale nedokáži, aby se ty data kopírovali na jiný list do stejného místa pokaždé"

A to se právě děje.

"jen neznám potřebný kod"

Ano, s tím by se dalo souhlasit.

Kopírování dat jako takové je ptákovina. Otázkou je jak to má celé fungovat!citovat
#045741
avatar
Napřiklad ze sešitu květen, by se měly hodnoty ze sloupců A,B,C přenést na sešit prohlášení opět do sloupců A,B,C, ale až od 16 řádků. Vždycky po jednom jménu a ty datumy by měly být v prohlášení seřazeni za sebou. Mně to vždycky zkopíruje až poslední řádek z hodnot, ikdyž jsem dal větší rozsah v prohlášení, tak to stejně vyplni pouze hodnotou z posledního řádku u jména. Nejhorší je, že počet jmen je pokaždé různý a počet dnů docházky je také pokaždé různý. Nejsem žádný profík, ale přes ty for cykly mi to přislo nejlepší.citovat
#045742
Stalker
Hele pokud chceš aby Ti někdo poradil s kódem, tak napiš jak to má CELÉ fungovat.
To že chceš kopírovat blok dat (kterým říkáš tabulka) do jakého si formuláře "Prohlášení" mi samozřejmě došlo.

Tvůj kód nekopíruje poslední řádek! V cyklu kopíruje jednotlivé řádky, ale vkládá je do STEJNÉHO umístění, tedy dochází k přepisování jednotlivých hodnot.
Jinak počet řádků v excelu je 1048576

Kopírovat buňky po jedné je blbost, pokud to budeš dělat ručně taky nebudeš kopírovat po jedné, ale vybereš celý blok dat.

Podle jakého klíče se rozhoduješ, který blok dat se má zkopírovat?
Mají všechny bloky dat stejný nebo menší počet řádků než je počet řádků ve "formuláři"?
Pokud je počet řádků v bloku dat větší než je počet řádků ve formuláři, co se má stát?
Co ostatní položky formuláře?
Z jakého listu se má provádět kopírování a jak se bude definovat?
atd...citovat

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