Stránka 1 z 1

excel - označení řádků

Napsal: 24 črc 2019 08:27
od Rexlopek
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 63 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

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

Napsal: 24 črc 2019 09:27
od Grimm
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ž.

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

Napsal: 24 črc 2019 10:32
od Rexlopek
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

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

Napsal: 24 črc 2019 13:27
od Grimm
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ý :-)

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

Napsal: 24 črc 2019 13:44
od d1amond
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.