< 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.

Jméno
Kontrola
Text
  b i u s img code url hr   1 2 3 4 5 6 7 8 9 10

#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 13x)
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

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Vyhledej

PavDD • 23.4. 12:29

Vyhledej

PavDD • 23.4. 11:47

Relativní cesta - zdroje Power Query

Alfan • 23.4. 10:52

Relativní cesta - zdroje Power Query

elninoslov • 23.4. 10:22

Relativní cesta - zdroje Power Query

lubo • 23.4. 10:15

Relativní cesta - zdroje Power Query

Alfan • 23.4. 10:11

Relativní cesta - zdroje Power Query

lubo • 23.4. 10:11