Skip to main content

AccessTr.neT


Araç Plakalarından Boşta Olanları Bulma

Araç Plakalarından Boşta Olanları Bulma

#4
Mantığını anlamanız için en basit hali kodlanmış ekli şöyle olur:
Kod:
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

    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:D").Find(What:="99AL" & 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 = "99AL" & 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, "99AL") > 0 Then
            ws.Cells(i, 3).Value = Format(Mid(SeriNo, 5), "000")
        End If
    Next i

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

bunu bir modüle ekleyip çalıştırdığınızda seri-999 içindeki değerleri plaka sütununda arar olmayanları verilmeyenler sütununda listeler. Belirttiğim üzere arama, bulma mantığını anlamanız açısından en basit şekli ile kodlanmıştır, dictionary gibi yapılar kullanılarak daha efektif kodlama yapılabilir.
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 - 25/02/2024, 12:44
Task