Hallo BlackDevil,
OK, het zal niet te lastig zijn om ons beider ideeën te verenigen. Zet eerst en vooral eens manueel (eenmalig dus) een 'x' in HL271, en dan zou het daarna met deze code goed moeten gaan:
Sub afgewerkt_test()
Start = Timer
Application.ScreenUpdating = False
'----- nagaan welke cellen (borduursteken) reeds gemarkeerd (geborduurd) zijn
With Sheets("patroon")
markeren = True 'uitgangspunt is dat we volledige groene rijen vinden, dus ze mogen gemarkeerd worden
beginnen = .Columns(220).Find("x").Row - 1
For rij = beginnen To 1 Step -1
'aantal groene initialiseren en tellen
groene = 0
For kol = 1 To 216
If Cells(rij, kol).Interior.Color = vbGreen Then groene = groene + 1
Next kol
If groene < 216 Then markeren = False 'we moeten stoppen met markeren
If groene = 0 Then Exit For 'volledige rij witte gevonden
For kol = 1 To 216
If .Cells(rij, kol).Interior.Color = vbGreen And .Cells(rij, kol) <> "" Then
symbool = .Cells(rij, kol)
'----- corresponderende kleur zoeken nav symbool
With Sheets("DMCtoRGB")
i = .Columns(6).Find(symbool).Row
R = .Cells(i, 2)
G = .Cells(i, 3)
B = .Cells(i, 4)
End With
'----- de gemarkeerde cellen (borduursteken) omzetten in kleur naar extra werkblad
With Sheets("afgewerkt").Cells(rij, kol)
.Borders(xlDiagonalDown).LineStyle = xlContinuous
.Borders(xlDiagonalDown).Color = RGB(R, G, B)
.Borders(xlDiagonalDown).Weight = 4
.Borders(xlDiagonalUp).LineStyle = xlContinuous
.Borders(xlDiagonalUp).Color = RGB(R, G, B)
.Borders(xlDiagonalUp).Weight = 4
End With
End If
Next kol
If groene = 216 And markeren = True Then 'dubbele controle of we een 'x' mogen zetten
Cells(rij, 220) = "x"
End If
Next rij
End With
MsgBox (Timer - Start & " sec.")
End Sub
Groetjes,
Molly