Skip to main content

AccessTr.neT


Araç Plakalarından Boşta Olanları Bulma

Araç Plakalarından Boşta Olanları Bulma

#16
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.

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("DLol").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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
RE: Araç Plakalarından Boşta Olanları Bulma - Yazar: atoykan - 10/03/2024, 10:09
Task