Sub PlakaKontrol()
Dim ws As Worksheet
Dim LastRow As Long, i As Long
Dim SeriNo As String
Dim Plaka As Range, Verilmeyenler As Range
Set ws = ThisWorkbook.Sheets("Sayfa1") ' Çalışma sayfasını tanımla
LastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row ' Son satırı bul
strwhat = Left(Cells(3, 4), 4)
For i = 3 To LastRow
SeriNo = ws.Cells(i, 3).Value ' Seri-999 değerini al
' Plaka sütununda "99AL" & serino'yu ara
Set Plaka = ws.Columns("D
").Find(What:=strwhat & SeriNo, LookIn:=xlValues, LookAt:=xlWhole)
If Plaka Is Nothing Then ' Eğer kayıt yoksa Verilmeyenler sütununa ekle
If Verilmeyenler Is Nothing Then
Set Verilmeyenler = ws.Cells(i, 3)
Else
Set Verilmeyenler = Union(Verilmeyenler, ws.Cells(i, 3))
End If
ws.Cells(i, 3).Value = strwhat & SeriNo
End If
Next i
If Not Verilmeyenler Is Nothing Then ' Verilmeyen plakaları alt alta sırala
Verilmeyenler.Copy ws.Cells(3, 5)
End If
For i = 3 To LastRow
SeriNo = ws.Cells(i, 3).Value
If InStr(SeriNo, strwhat) > 0 Then
ws.Cells(i, 3).Value = Format(Mid(SeriNo, 5), "000")
End If
Next i
MsgBox "İşlem tamamlandı!", vbInformation
End Sub
Sadece il kodu ve iki harf kurgusu üzerinden ilerleyeceksiniz aşağıdaki kodu kullanın. Ancak rica edeceğim mantığı anlamanız ve kendiniz yapmaya çalışabilmeniz için olabilecek en basit halde kodlamaya çalıştım, mantığını anlayıp kendiniz çalışmanıza göre revize etmeye, senaryolarınıza göre uyarlamaya çalışmaya gayret edin, takıldığınız her an nasılsa cevap veriliyor diyerek sormaya devam etmek yerine üzerinde biraz çalışıp, anlayıp pekiştirdikçe de örneğin @feraz hocamın vermiş olduğu gibi sadeleştirilmiş kodlara hakim olup yazabiliyor olacaksınız.