Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Excel: postupné kopírování z různých listů do jednoho (makro?)

Název threadu se mi moc nepovedl, vysvětlím podrobně tady.

Soubor s příkladem je v příloze.

Mám *xlsx, kde jsou listy "List1" až "List3" a list "vystup".

1. Na listech 1-3 se nachází seznamy, které mohou být libovolně dlouhé. Vždy ale začínají v určené buňce, v příkladu jsou označeny žlutě. Mezi řádky s položkami nejsou mezery.
2. Může se stát, že na listu nebude ani jedna položka.
3. Potřebuji výsledek, tedy seznam položek z listů 1-3 dostat na list "vystup" a to tak, že nejprve se překopírují všechny položky z listu 1 (tedy od C4 dolů), pak z dvojky (od G2) a nakonec z trojky (od C13)

Mělo by se tedy nějak při kopírování otestovat, "kam až seznam na daném listě sahá", seznam zkopírovat a vložit na první volný řádek listu "vystup" do sloupce A.

Texty jsem uvedl jako příklad, ve skutečnosti jde vždy o výsledek složitého vzorce. Potřebuji, aby kopírování provedlo ten jako text, žádné přepočítánání. Tedy pravděpodobně "vložit jako hodnoty".

Př.:
chci kopírovat tohle (a chci, aby to takto jako text bylo na listu "vystup":

<VetaB2 c_evid_dd="16001" c_radku="2" dan1="21,00" dan2="1500,11" dic_dod="00112233" dppd="06.02.2016" pomer="N" zakl_dane1="100,00" zakl_dane2="10000,42" />
přitom tohle je výsledek vzorečku:
="<VetaB2 "&KDYŽ(A2="";"";$A$1&"="""&A2&""" ")&KDYŽ(B2="";"";$B$1&"="""&B2&""" ")&KDYŽ(C2="";"";$C$1&"="""&HODNOTA.NA.TEXT(C2;"0, 00")&""" ")&KDYŽ(D2="";"";$D$1&"="""&HODNOTA.NA.TEXT(D2;"0, 00")&""" ")&KDYŽ(E2="";"";$E$1&"="""&HODNOTA.NA.TEXT(E2;"0, 00")&""" ")&KDYŽ(F2="";"";$F$1&"="""&F2&""" ")&KDYŽ(G2="";"";$G$1&"="""&HODNOTA.NA.TEXT(G2;"dd .mm.rrrr")&""" ")&KDYŽ(H2="";"";$H$1&"="""&H2&""" ")&KDYŽ(I2="";"";$I$1&"="""&HODNOTA.NA.TEXT(I2;"0, 00") &""" ")&KDYŽ(J2="";"";$J$1&"="""&HODNOTA.NA.TEXT(J2;"0, 00")&""" ")&KDYŽ(K2="";"";$K$1&"="""&HODNOTA.NA.TEXT(K2;"0, 00")&""" ")&KDYŽ(L2="";"";$L$1&"="""&L2&""" ")&"/>"
Takto by to vypadalo, kdybych znal přesnou délku seznamů na listech 1-3

Sub Makro1()
'
' Makro1 Makro
'

'
    Sheets("List1").Select
    Range("C4:C6").Select
    Selection.Copy
    Sheets("vystup").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("List2").Select
    Range("G2:G3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("vystup").Select
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("List3").Select
    Range("C13:C18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("vystup").Select
    Range("A6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub
Jenže ji neznám. A také může být některý seznam prázdný.

Pomožte, poraďte.
Díky moc!

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny