2 adet e-tablo verim var.
a tablomda plaka listemde örnek olarak: 01 abc 123 yazıyor.
b tablomda ise : 02 def123yazıyor.
Benim amacım bu iki tablodaki verileri karşılaştırarak eksik olan plakaları bulmak,öncelikle:
-a tablosunda yer alan "01 abc 123" plakası yazan sütunu komple "01abc123" şeklinde bitişik yazdırabilirim?
-Tüm satırları bitişik olarak kurguladığımda bu iki tablodaki verileri nasıl kıyaslayarak eksikleri bulabilirim?
Excel bilgisi olan arkadaşlar yardımcı olabilir mi?
3
●82
- Kabul Edilen Cevap
- 0 Beğeni
-
- 26-07-2023, 16:11:36Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
- A tablosundaki plakaları bitişik yazdırma (01abc123 formatında):
Sub BitisikPlakalariDuzenle() Dim ws As Worksheet Dim lastRow As Long Dim i As Long ' Çalışma sayfasını seçin (A tablosu) Set ws = ThisWorkbook.Worksheets("A_tablosu") ' Son dolu satırı bulun lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Satırları dolaşarak plakaları bitişik hale getirin For i = 2 To lastRow ' İlk satır başlıklar olduğu için 2'den başlatıyoruz ws.Cells(i, 1).Value = Replace(Replace(Replace(ws.Cells(i, 1).Value, " ", ""), "-", ""), ".", "") Next i End Sub- B tablosundaki plakaları bitişik yazdırma (02def123 formatında):
Sub BitisikPlakalariDuzenle() Dim ws As Worksheet Dim lastRow As Long Dim i As Long ' Çalışma sayfasını seçin (B tablosu) Set ws = ThisWorkbook.Worksheets("B_tablosu") ' Son dolu satırı bulun lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Satırları dolaşarak plakaları bitişik hale getirin For i = 2 To lastRow ' İlk satır başlıklar olduğu için 2'den başlatıyoruz ws.Cells(i, 1).Value = Replace(Replace(Replace(ws.Cells(i, 1).Value, " ", ""), "-", ""), ".", "") Next i End Sub- İki tablodaki verileri karşılaştırma ve eksik plakaları bulma:
Sub PlakaKarsilastir() Dim wsA As Worksheet, wsB As Worksheet Dim lastRowA As Long, lastRowB As Long Dim i As Long, j As Long Dim plakaA As String, plakaB As String Dim plakaBulundu As Boolean ' A ve B tablolarını seçin Set wsA = ThisWorkbook.Worksheets("A_tablosu") Set wsB = ThisWorkbook.Worksheets("B_tablosu") ' Son dolu satırları bulun lastRowA = wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row lastRowB = wsB.Cells(wsB.Rows.Count, "A").End(xlUp).Row ' A tablosundaki plakaları bitişik hale getirin For i = 2 To lastRowA ' İlk satır başlıklar olduğu için 2'den başlatıyoruz wsA.Cells(i, 1).Value = Replace(Replace(Replace(wsA.Cells(i, 1).Value, " ", ""), "-", ""), ".", "") Next i ' B tablosundaki plakaları bitişik hale getirin For i = 2 To lastRowB ' İlk satır başlıklar olduğu için 2'den başlatıyoruz wsB.Cells(i, 1).Value = Replace(Replace(Replace(wsB.Cells(i, 1).Value, " ", ""), "-", ""), ".", "") Next i ' Eksik plakaları bulma işlemi For i = 2 To lastRowA ' A tablosundaki plakaları dolaşın plakaA = wsA.Cells(i, 1).Value plakaBulundu = False For j = 2 To lastRowB ' B tablosundaki plakaları dolaşın plakaB = wsB.Cells(j, 1).Value ' Plaka eşleşmesi varsa işaretle ve döngüden çık If plakaA = plakaB Then plakaBulundu = True Exit For End If Next j ' Eğer plaka eşleşmesi yoksa A tablosundaki plakayı mesaj kutusuyla bildirin If Not plakaBulundu Then MsgBox "Eksik plaka: " & wsA.Cells(i, 1).Value, vbExclamation End If Next i End Sub
Yukarıdaki üç kod bloğunu Excel'de VBA editörüne (ALT + F11) kopyalayarak çalıştırabilirsiniz. "BitisikPlakalariDuzenle" kodları ile her iki tablodaki plakaları bitişik hale getirirken, "PlakaKarsilastir" kodu bu plakaları karşılaştırarak eksik olanları tespit edecektir. Eksik plakalar bir mesaj kutusuyla bildirilecektir.
Not: Kodları kullanmadan önce verilerinizi yedeklemenizi tavsiye ederim. Ayrıca, tablo adlarınızı "A_tablosu" ve "B_tablosu" olarak varsaydım, ancak kendi tablo adlarınıza göre düzenlemeyi unutmayın.