(16/05/2021, 19:09)feraz yazdı:   (16/05/2021, 18:35)Oğuz Türkyılmaz yazdı:  Formül sorun yaratıyor feraz hocam zaten hücrede 0 olmuş yada boş olmuş farketmiyor
Göndermeye çalışıyorsa koda if ile 0 ise yada boş ise yada formüllü ise diye koşul eklenir.
O konu için extra konu açın bakalım abey.
Resimlerde gösterdim.
![[Resim: do.php?img=11043]](https://resim.accesstr.net/do.php?img=11043)
https://resim.accesstr.net/do.php?img=11043
![[Resim: do.php?img=11044]](https://resim.accesstr.net/do.php?img=11044)
https://resim.accesstr.net/do.php?img=11044
![[Resim: do.php?img=11045]](https://resim.accesstr.net/do.php?img=11045)
https://resim.accesstr.net/do.php?img=11045
![[Resim: do.php?img=11046]](https://resim.accesstr.net/do.php?img=11046)
https://resim.accesstr.net/do.php?img=11046
Sub Whatsap_ekle_sil_guncelle()
Dim dic As Object, sonAna As Long, keyy As String, kac As Long
Dim syfAna As Worksheet, dizi(), i As Long, say As Long, hatalimi As Boolean
Set dic = CreateObject("Scripting.dictionary")
Set syfAna = ThisWorkbook.Worksheets("Ana_Sayfa")
Application.ScreenUpdating = False
sonAna = syfAna.Range("A:A").Find("*", , , , , xlPrevious).Row
hatalimi = False
With ThisWorkbook.Worksheets("WHATSAPP")
  .Unprotect "171717"
    .Range("A2:A" & Rows.Count).ClearContents
    
    If sonAna < 2 Then
        hatalimi = True: GoTo son
    End If
    kac = WorksheetFunction.CountA(syfAna.Range("A2:A" & Rows.Count))
    If kac = 1 Then
        .Range("A2").Value = syfAna.Cells(sonAna, "AD").Value
        GoTo son
    End If
    
    dizi = syfAna.Range("AD2:AD" & sonAna).Value
    ReDim arr(1 To UBound(dizi), 1 To 1)
    say = 0
    
    For i = LBound(dizi) To UBound(dizi)
      keyy = CStr(dizi(i, 1))
      If Not dic.exists(keyy) Then
          say = say + 1
          dic.Add keyy, 0
          arr(say, 1) = keyy
      End If
    Next
    
    If dic.Count > 0 Then .Range("A2").Resize(dic.Count, 1).Value = arr
son:
Application.ScreenUpdating = True
.Protect "171717"
End With
On Error Resume Next
If hatalimi = True Then
    MsgBox "Kaydedilecek yada güncellenecek yada silinecek veri yok.", vbCritical, "Hata"
Else
    MsgBox "islem tamam.", vbInformation, "Bilgi"
End If
Set sic = Nothing: Set syfAna = Nothing: Erase arr: Erase dizi
End Sub
Boş veriler aktarmasın istiyorsanız ilgili yeri attaki gibi değiştirin.
If keyy <> "" Then ekledim koda ve end if
Ado ilede kısa kod ile yapılır.
    For i = LBound(dizi) To UBound(dizi)
        keyy = CStr(dizi(i, 1))
        If keyy <> "" Then
            If Not dic.exists(keyy) Then
                say = say + 1
                dic.Add keyy, 0
                arr(say, 1) = keyy
            End If
        End If
    Next
Kodun tamamı altta.
Sub Whatsap_ekle_sil_guncelle()
Dim dic As Object, sonAna As Long, keyy As String, kac As Long
Dim syfAna As Worksheet, dizi(), i As Long, say As Long, hatalimi As Boolean
Set dic = CreateObject("Scripting.dictionary")
Set syfAna = ThisWorkbook.Worksheets("Ana_Sayfa")
Application.ScreenUpdating = False
sonAna = syfAna.Range("A:A").Find("*", , , , , xlPrevious).Row
hatalimi = False
With ThisWorkbook.Worksheets("WHATSAPP")
  .Unprotect "171717"
    .Range("A2:A" & Rows.Count).ClearContents
    
    If sonAna < 2 Then
        hatalimi = True: GoTo son
    End If
    kac = WorksheetFunction.CountA(syfAna.Range("A2:A" & Rows.Count))
    If kac = 1 Then
        .Range("A2").Value = syfAna.Cells(sonAna, "AD").Value
        GoTo son
    End If
    
    dizi = syfAna.Range("AD2:AD" & sonAna).Value
    ReDim arr(1 To UBound(dizi), 1 To 1)
    say = 0
    
    For i = LBound(dizi) To UBound(dizi)
        keyy = CStr(dizi(i, 1))
        If keyy <> "" Then
            If Not dic.exists(keyy) Then
                say = say + 1
                dic.Add keyy, 0
                arr(say, 1) = keyy
            End If
        End If
    Next
    
    If say > 0 Then .Range("A2").Resize(say, 1).Value = arr
son:
Application.ScreenUpdating = True
.Protect "171717"
End With
On Error Resume Next
If hatalimi = True Then
    MsgBox "Kaydedilecek yada güncellenecek yada silinecek veri yok.", vbCritical, "Hata"
Else
    MsgBox "islem tamam.", vbInformation, "Bilgi"
End If
Set sic = Nothing: Set syfAna = Nothing: Erase arr: Erase dizi
End Sub