Hücre değer sayısına göre kullanıcıya hatalı değeri D sütünunda göstermesi

Katılım
13 Ekim 2022
Mesajlar
40
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-10-2023
Merhabalar, Ekli dosyadaki gibi B süünunda 10 haneli barkod numaralarım var ancak bunların içinde 10 basamaklı olmayan sayılar mükerrer girişli olduğu için eğer hatalı giriş varsa makro bittiğinde hatalı barkodlar D sütünunda listelensin vemesaj box ile ""D sütünunda hatalı girişleri mevcut" yazısı ile kullanıcıyı uyarsın . nasıl bir kod kullanmam gerekir.

9074567896​

  

9074567897​

  

9074567898​

  

9074567899​

  

9074567900​

  

9074567901​

  

9074567902​

  

9074567903​

  
 

Ekli dosyalar

Son düzenleme:

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Dener misiniz?
Kod:
Sub Hata_Bul()
    ss = Cells(Rows.Count, "B").End(3).Row
    Sat = 1
For i = 1 To ss
    If Len(Cells(i, 2)) <> 10 Then
        Cells(Sat, 4) = Cells(i, 2)
        Sat = Sat + 1
    End If
Next
If Sat > 1 Then MsgBox "D sütünunda hatalı girişleri mevcut", vbCritical, "D i k k a t !!!"
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif...

C++:
Option Explicit

Sub LIST_INCORRECT_BARCODES()
    Dim My_Connection As Object, My_Recordset As Object, Process_Time As Double
    
    Process_Time = Timer
    
    Set My_Connection = VBA.CreateObject("AdoDb.Connection")
    
    My_Connection.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;Hdr=No"""
    
    Set My_Recordset = My_Connection.Execute("Select F1 From [Sheet1$B:B] Where Len(F1) <> 10")
 
    Range("D:D").ClearContents
    Range("D1").CopyFromRecordset My_Recordset
 
    If My_Connection.State <> 0 Then My_Connection.Close
 
    Set My_Connection = Nothing
    Set My_Recordset = Nothing
 
    If Range("D1") <> "" Then
        MsgBox "Hatalı barkodlar bulundu!" & vbCrLf & _
               "İşlem süresi ; " & Format(Timer - Process_Time, "0.00") & " Saniye", vbCritical
    Else
        MsgBox "Hatalı barkod bulunamdı.", vbCrLf & _
               "İşlem süresi ; " & Format(Timer - Process_Time, "0.00") & " Saniye", vbInformation
    End If
End Sub
 
Üst