excel - označení řádků

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

Moderátor: Mods_senior

Rexlopek
nováček
Příspěvky: 6
Registrován: listopad 17
Pohlaví: Muž
Stav:
Offline

excel - označení řádků

Příspěvekod Rexlopek » 24 črc 2019 08:27

Ahoj,
zkoušel jsem vytvořit makro, které by mi označilo všechny řádky, podle jednoduché podmínky, ale vždy mi to označí jen první vhodný řádek a zbytek nechá být, neporadil by mi někdo, v čem dělám chybu?




řádky.xlsm
(33.73 KiB) Staženo 64 x




zmíněné makro:

Sub Makro1()
'
' Makro1 Makro
'
Set Rng = Range("D1:D57")
i = 1
For counter = 1 To Rng.Rows.Count
If Rng.Cells(i) = "ANO" Then
Rng.Cells(i).EntireRow.Interior.Color = RGB(188, 188, 188)
Else
i = i + 1
End If
Next
'
End Sub

Reklama
Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Re: excel - označení řádků

Příspěvekod Grimm » 24 črc 2019 09:27

V čem děláš chybu?. V nesmyslném použití dvou čítačů. Tedy proměnných counter a i, to i je tam naprosto zbytečné a způsobuje nefunkčnost kódu a špatně zvolené vyhodnocení podmínky "if". V editoru si zobraz okno "Locals" ať vidíš jakých hodnot obě proměnné nabývají.
Pro názornost si můžeš do cyklu vložit Rng.Cells(i).Select abys viděl v listu, která buňka je aktuálně vybraná a kód krokuj pomocí klávesy F8.
Určitě přijdeš na to kde si udělal kopanec.

PS: Ten select potom samozřejmě smaž.

Rexlopek
nováček
Příspěvky: 6
Registrován: listopad 17
Pohlaví: Muž
Stav:
Offline

Re: excel - označení řádků

Příspěvekod Rexlopek » 24 črc 2019 10:32

začalo mi to fungovat s přidáním dalšího počítadla, je to správně?

Sub Makro1()
'
' Makro1 Makro
'
Set Rng = Range("D1:D57")
i = 1
For counter = 1 To Rng.Rows.Count
Rng.Cells(i).Select
If Rng.Cells(i) = "ANO" Then
Rng.Cells(i).EntireRow.Interior.Color = RGB(188, 188, 188)
i = i + 1
Else
i = i + 1
End If
Next
'
End Sub

Uživatelský avatar
Grimm
Level 2
Level 2
Příspěvky: 165
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Re: excel - označení řádků

Příspěvekod Grimm » 24 črc 2019 13:27

Jak už sem psal předtím, proměnná i je zcela zbytečná. Vždyť si vystačíš s prvním počítadlem counter. Nebo pokud trváš na tom i tak si counter přejmenuj na i.

Kód: Vybrat vše

Sub Makro1()
'
' Makro1 Makro
'
Dim RnG As Range
Dim counter As Long

Set RnG = Range("D1:D57")
For counter = 1 To RnG.Rows.Count
    If RnG.Cells(counter) = "ANO" Then
        RnG.Cells(counter).EntireRow.Interior.Color = RGB(188, 188, 188)
    End If
Next
'
Set RnG = Nothing
End Sub


PS: Samozřejmě by se kód dal napsat několika způsoby, ale na začátek dobrý :-)

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: excel - označení řádků

Příspěvekod d1amond » 24 črc 2019 13:44

Hlavně to není kód napsaný uživatelem, ale záznam makra. Myslím si, že tazatel moc neví, na co se kouká. Resp. makro, doplněné uživatelsky.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4912
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12323
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    5039
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3410
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » 24 dub 2025 10:51 » v Kancelářské balíky
    5
    3999
    od atari Zobrazit poslední příspěvek
    26 dub 2025 09:11

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

Kdo je online

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