Skip to main content

AccessTr.neT


Araç Plakalarından Boşta Olanları Bulma

Araç Plakalarından Boşta Olanları Bulma

#11
Kodu aşağıdaki gibi güncelleyin.
Sub PlakaKontrol()
    Dim ws As Worksheet
    Dim LastRow As Long, i As Long
    Dim SeriNo As String, PlakaGrubu As String, PlakaHarfGrubu 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

    For i = 3 To LastRow
        SeriNo = ws.Cells(i, 3).Value ' Seri-999 değerini al
        PlakaGrubu = Left(Cells(i, 4), 2) ' plaka il gurubunu belirler
        PlakaHarfGrubu = SadeceHarfler(Cells(i, 4)) ' plaka harf grubunu belirler
   
        ' Plaka sütununda "99AL" & serino'yu ara
        Set Plaka = ws.Columns("DLol").Find(What:=PlakaGrubu & PlakaHarfGrubu & 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 = PlakaGrubu & PlakaHarfGrubu & 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
PlakaGrubu = Left(Cells(i, 4), 2)
PlakaHarfGrubu = SadeceHarfler(Cells(i, 4))
        If InStr(SeriNo, PlakaGrubu & PlakaHarfGrubu) > 0 Then
            ws.Cells(i, 3).Value = Format(Mid(SeriNo, 5), "000")
        End If
    Next i

    MsgBox "İşlem tamamlandı!", vbInformation
End Sub

Function SadeceHarfler(str As String) As String
    Dim i As Integer
    Dim karakter As String, sonuc As String

    sonuc = ""

    For i = 1 To Len(str)
        karakter = Mid(str, i, 1)
        If (karakter Like "[A-Za-z]") Then
            sonuc = sonuc & karakter
        End If
    Next i

    SadeceHarfler = sonuc
End Function

Function SadeceSayiAl(str As String) As String
    Dim i As Integer
    Dim karakter As String, sonuc As String

    sonuc = ""

    For i = 1 To Len(str)
        karakter = Mid(str, i, 1)
        If (IsNumeric(karakter)) Then
            sonuc = sonuc & karakter
        End If
    Next i

    SadeceSayiAl = sonuc
End Function
kod önce il grubunu belirler, sonra harf grubunu belirleyerek plakaları arar böylece il ve harf grubu değişsede istediğiniz gibi verilmeyen plakaları listeler.
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 - 09/03/2024, 11:37
Task