< návrat zpět

MS Excel


Téma: Spuštění makra na označených řádcích rss

Zaslal/a 12.7.2022 19:51

Dobrý den,
potřeboval bych pomoct s kódem VBA. Mám udělané makro, které zjistí číslo aktivního řádku, a provede úkon s hodnotou z aktivního řádku. Potřeboval bych aby tohle fungovalo automaticky u všech označených řádků. Některé řádky mohou být navíc odfiltrovány pomocí filtru. V příloze jednoduchá ukázka.
Díky všem.

Zaslat odpověď >

#052987
elninoslov
Ak je príloha *.xlsm, treba ju zbaliť do ZIP/7Z/RAR.citovat
#052988
avatar
A sakra, jsem si nevšiml, že se nenahrála.
Příloha: zip52988_test.zip (18kB, staženo 14x)
citovat
#052989
elninoslov
Čím ďalej častejšie som fakt nechápavý 7
Neviem, čo je cieľom. Skopírovať v aktívnom liste hodnotu z A do B ???
Sub ImportXml2()
Dim Bunka As Range, PodOblast As Range, Oznacene As Range

Set Oznacene = Intersect(ActiveSheet.Columns("B"), Selection.SpecialCells(xlCellTypeVisible).EntireRow)
If Not Oznacene Is Nothing Then
For Each PodOblast In Oznacene
For Each Bunka In PodOblast
Bunka.Value = Bunka.Offset(0, -1).Value
Next Bunka
Next PodOblast
End If
End Sub
citovat
#052990
avatar
Samozřejmě že ne kopírovat hodnoty z A do B, ten skript jsem zjednodušil a dal jako příklad. Ve skutečnosti načítá hodnoty z řádků, ověřuje přes webovou adresu (API) a stahuje XML ze kterých čerpá další data. Tahle mi fungovalo po jednom řádku.

Jen jsem nevěděl jak pracovat s označenou oblastí a tu pak postupně procházet. Takhle mi to stačí, zbytek si přizpůsobím podle sebe. Díky moc.citovat
#053010
elninoslov
Lepší a pochopiteľnejší by bol upresnený zápis:
...
For Each PodOblast In Oznacene.Areas
For Each Bunka In PodOblast.Cells
...

Lebo Cells/Areas/Range všetko je stále Range, tak je dobré to takto upresniť.citovat
#053089
avatar
Zdravím,
dá se zjistit kolik řádků je označených v proměnné "Oznacene"? Makro funguje pokud označím více jak jeden řádek, ale pokud mám jen kurzor v buňce tak skončí chybou. Díky.citovat
#053091
elninoslov
On Error Resume Next
Set Oznacene = Intersect(ActiveSheet.Columns("B"), IIf(Selection.Cells.Count = 1 And Selection.EntireRow.Hidden = False, Selection.EntireRow, Selection.SpecialCells(xlCellTypeVisible).EntireRow))
On Error GoTo 0
citovat
#053094
avatar
bobika99: mě funguje
Oznacene.Rows.Counti na výběr pouze jedné buňky !citovat
#053097
elninoslov
Pozrite si ten riadok kódu, čo som napísal. Selection.Cells.Count čo tam mám je adekvátne k tomu čo píšete. Navyše treba rozlíšiť samotné zisťovanie označených+viditeľných. SpecialCells vracia nelogicky úplne niečo iné ak sú označené bunky, a ak je iba jedna. Vtedy vráti všetky viditeľné riadky, a tým pádom Intersect vráti aj neoznačené. Ten môj riadok kódu ošetruje všetko, dokonca aj situáciu ak bude označená bunka skrytá.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