< návrat zpět

MS Excel


Téma: Podbarvení buňky na základě jiné buňky rss

Zaslal/a 8.6.2018 13:58

Ahoj.

Mám list "Urgence" zde potřebuji podbarvit buňky ve sloupci "A", které mají stejnou hodnotu jako buňka "D3" na listu "Strategické díly.

K tomu se snažím použít
For Each cell In Range("A2:A8000")
If cell(s).Value = Sheets("Strategické díly").Range("D3:D3").Value Then
cell(s).Interior.Color = RGB(0, 204, 255)

Else
s = s + 1
End If
Next


Někde je ale chyba.
Poradíte prosím?

Příloha: zip40631_test.zip (244kB, staženo 37x)
Zaslat odpověď >

#040634
elninoslov
Sub Makro1000b()
Dim Cell As Range, D(), Radku As Long, HDN As String, RNG As Range
With wsUrgence
Radku = .Cells(Rows.Count, 1).End(xlUp).Row - 1
If Radku < 2 Then MsgBox "Chybějí data.", vbExclamation, "Oznam": Exit Sub
HDN = wsStrategickeDily.Cells(3, 4).Value2
ReDim D(1 To Radku, 1 To 1)
D = .Cells(2, 1).Resize(Radku).Value2
For Radku = 1 To Radku
If D(Radku, 1) = HDN Then
If RNG Is Nothing Then Set RNG = .Cells(Radku + 1, 1) Else Set RNG = Union(RNG, .Cells(Radku + 1, 1))
End If
Next Radku
End With
If Not RNG Is Nothing Then RNG.Interior.Color = RGB(0, 204, 255)
End Sub

Nechcete Vy náhodou testovať výskyt všetkých zo Strategické díly!D3:D13 ? Inak to môžete kľudne aj Podmieneným formátom.

PS: wsUrgence a wsStrategickeDily som si pomenoval CodeName listov.citovat
#040635
Hav-Ran
Asi takto, úprava tučne:

For Each cell In Range("A2:A8000")

If cell.Value = Sheets("Strategické díly").Range("D3:D3").Value Then

cell.Interior.Color = RGB(0, 204, 255)

End If

Next cell
citovat
#040637
avatar
elninoslov - pochopil jste přesně co jsem potřeboval, ale nechtěl jsem moc otravovat.

Tak jsem na každou vyhledávanou položku ze sloupce "D" napsal zvlášť proceduru.

Vím, že mým způsobem to není optimální, ale v celku to funguje.

Moc díky určitě využiji.
Radekcitovat
#040639
avatar

Radek-Klepacek napsal/a:

Tak jsem na každou vyhledávanou položku ze sloupce "D" napsal zvlášť proceduru.
Radek

Tak toto by zdravého človeka nenapadlo. 9citovat
#040640
avatar
Nevím proč, ale vždy to havaruje na
Radku = .Cells(Rows.Count, 1).End(xlUp).Row - 1
Příloha: zip40640_test.zip (376kB, staženo 22x)
citovat
#040642
Stalker

Radek-Klepacek napsal/a:

Nevím proč, ale vždy to havaruje na
Radku = .Cells(Rows.Count, 1).End(xlUp).Row - 1Příloha: 40640_test.zip (376kB, staženo 1x)


Problém je v předchozím řádku
With wsUrgence

CodeName tvého listu je List1

Má tedy být
With List1

ale to ti elninoslov psal hned ve svém příspěvku

PS: wsUrgence a wsStrategickeDily som si pomenoval CodeName listov.citovat
#040644
avatar
Už to vidím, děkuji.citovat
#040645
elninoslov
Tak potom napr. takto:
Sub Makro1000c()
Dim Radku As Long, Radku2 As Long, RNG As Range, D()
With wsUrgence
Radku = .Cells(Rows.Count, 1).End(xlUp).Row
Radku2 = wsStrategickeDily.Cells(Rows.Count, 4).End(xlUp).Row
If Radku < 2 Or Radku2 < 3 Then MsgBox "Chybějí data.", vbExclamation, "Oznam": Exit Sub
D = Evaluate("=IF(COUNTIF('Strategické díly'!D3:D" & Radku2 & ",Urgence!A2:A" & Radku & ")>0,True)")
For Radku = 1 To UBound(D)
If D(Radku, 1) Then
If RNG Is Nothing Then Set RNG = .Cells(Radku + 1, 1) Else Set RNG = Union(RNG, .Cells(Radku + 1, 1))
End If
Next Radku
End With
If Not RNG Is Nothing Then RNG.Interior.Color = RGB(0, 204, 255)
End Sub
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