Opakování makra

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

Moderátor: Mods_senior

Guzma
nováček
Příspěvky: 2
Registrován: březen 14
Pohlaví: Muž
Stav:
Offline

Opakování makra

Příspěvekod Guzma » 12 bře 2014 12:47

Dobrý den.

Mám vytvořené makro kde z jiného listu čtu jednotlivé buňky (řádek 3) a tvořím z něj zápis na jiný list (A20) ve formátu data a času. A teď bych potřeboval vytvořit smyčku kde by se načetli hodnoty vždy o řádek níž (řádek 4, řádek 5 ... až řádek X) a zapsal by se na další volnou buňku prvního listu(A21, A22 až Axxx). Bohužel mě nenapadl žádný postup, proto žádám o Vaši radu.

Velice děkuji.

Sub Date_Time()
'
' Date_Time Makro
'
Dim DatumText As String
DatumText = Range("Log!A3") & "." & Range("Log!B3") & "." & Range("Log!C3") & " " & Range("Log!D3") & ":" & Range("Log!E3") & ":" & Range("Log!F3")
Range("A20").Value = Format(DatumText, "d.m.yy h:mm;@")

End Sub

Reklama
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Opakování makra

Příspěvekod Azuzula » 12 bře 2014 13:36

Vítám Vás na PC-Help.
Pokud stačí jen popostrčení, tak doporučuju se podívat na:
cyklus For Next
příkaz With
a adresování buňky čísly: cells(řádek, sloupek) (nápověda v editoru VBA: "How to: Refer to Cells by Using Index Numbers")

Odkaz na stránky zabývající se VBA najdete třeba v mém podpisu.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

Guzma
nováček
Příspěvky: 2
Registrován: březen 14
Pohlaví: Muž
Stav:
Offline

Re: Opakování makra

Příspěvekod Guzma » 12 bře 2014 14:07

Děkuji za radu a přivítání.

Náhradu za adresování buněk jsem zvládl. Ale s tím zacyklováním si stále nevím radu. Pořád se mi nedaří vytvořit cyklus kde poskočím o řádek níž v jednom listě a zapíšu do buňky o řádek níž v jiném listě.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Opakování makra

Příspěvekod Azuzula » 12 bře 2014 16:41

Ok, tak to vezmeme s ukázkou.
Do buňky A1 až A10 zapíše číslo cyklu. Místo pevného čísla můžete použít proměnnou s číslem aby se hodnota zapsala do následující buňky.

Kód: Vybrat vše

for a = 1 to 10
'sem se vkládá kód který je potřeba provádět v cyklu
cells(a,1) = a
next

V cyklu můžete do proměnné přidat načtené buňky a pomocí následujícího příkazu zjistíte poslední řádek prázdné buňky v listu kam chcete zapsat výsledek:

Kód: Vybrat vše

promena = worksheets("List1").cells(a,1)
x = cells(rows.count, 1).end(xlup).row 'zjistit poslední použitou buňku
cells(x+1,1) = promena 'zapsat výsledek

V případě, že nad oblastí kam chcete zapsat výsledky jsou prázdné buňky, nebo pod danou oblastí jsou další data bude potřeba použít jinou metodu, např. další cyklus: for b = 1 to 10
Makro pak bude o něco pomalejší, ale až v řádu stovek až tisíců buněk.
Nebo použitím pomocného výpočtu v nějaké buňce ze které bude makro načítat číslo řádku kam chcete zapisovat.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    387
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43

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

Kdo je online

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