Kodun Veri Aktarırken Mevcut Diğer verileri silmesi

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Ekli çalışmamdaki kodu veri aktarmada kullanmaya çalıyorum ancak verileri aktarırken tabloda sarı dolgu ile işaretlediğim alanlardaki verilerin tamamını siliyor. Bunu nasıl düzeltebiliriz acaba. Yardımlarınız için şimdiden teşekküler
 

Ekli dosyalar

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
veri'de olup ana sayfa'da olmayan verileri ana sayfa'da B sütunundan en alta eklemek istirorsunuz anladığım kadarı ile

kodun sonudaki

Kod:
s1.[B2].Resize(UBound(b), UBound(b, 2)) = w
ifadesini aşağıdaki şekilde değiştirerek deneyin:
Kod:
s1.Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(b), UBound(b, 2)) = w
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
veri'de olup ana sayfa'da olmayan verileri ana sayfa'da B sütunundan en alta eklemek istirorsunuz anladığım kadarı ile

kodun sonudaki

Kod:
s1.[B2].Resize(UBound(b), UBound(b, 2)) = w
ifadesini aşağıdaki şekilde değiştirerek deneyin:
Kod:
s1.Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(b), UBound(b, 2)) = w
Tam öyle değil hocam TC kimlik numarasına göre tarama yapıp veri sayfasında hangi bilgileri yazdiysam ana sayfada karşılığını bulup ilgili sutuna aktaracak
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
yani vlookup / düşeyara fonksiyonunun işini görecek bir makro ile, VERİ sayfasındaki TCKN'lerin hizalarına, C D E F G H sütunlarına, ANA SAYFA'dan eşleşen TCKN'nin E I U Z M O sütunlarındaki verilerini mi getirmek istiyorsunuz?
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Veri sayfasina girdiğim bilgileri Ana sayfada çalışma durumu etkin olan personelin karşılığına aktarmak istiyorum. Calisma durumu etkin olarak baz almamızın sebebi aynı kişinin bir kaç kez ise girip çıkması yani mükerrer kayıtlarda çalışma durumu etkin olana gondersin
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
tam tersi mi yani.

veri A sütunu ana sayfa C'de varsa ve bu sayfa X sütunundaki değeri "Etkin" ise, bu sayfadaki tüm kayıtları bozmadan, bu iki kritere göre eşleşen TCKN'lerin veri'deki C D E F G H sütunlarındaki değerlerini ana sayfa'daki E I U Z M O sütunlarına yazdırmak.

konu bu ise bir arkadaşımız yardımcı olur mutlaka.

değil ise detaylandırın. yine cevap gelir.

ben 4 gün boyunca fazla ilgilenemem malesef
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Aynen böyle hocam
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
VERİ sayfasındaki TCKN'lerin benzersiz (unique) olduğunu, ANA SAYFA sayfasındaki TCKN'lerin tekrarlı (duplicate) olduğunu ancak sadece verisi güncellenecek satırın X sütunundaki verinin Etkin olduğunu kabul ediyorum.

Bu takdirde, aşağıdaki kodu asıl dosyanın bir kopyası üzerinde deneyin.
(Yüklediğiniz örnek dosya benim test etmem için yeterli değil.)

2 if AND operator ale birlşeitirlerek tek if blokunda yazılabilir tabii
değişkenleri kolay akılda kalacak şekilde değiştirdim, bir defa kullanılacak nesnelere değişken atmayı kaldırdım.

Kod:
Sub xlTR_182944()
'https://www.excel.web.tr/threads/kodun-veri-aktarirken-mevcut-diger-verileri-silmesi.182944/
   
    Dim i As Long, j As Long, tm As Double
    Dim arrVeri, arrAna
   
    tm = Timer
   
    With Worksheets("VERİ")
        arrVeri = .Range("A2:H" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value
    End With
   
    With Worksheets("ANA SAYFA")
        arrAna = .Range("B2:Z" & .Cells(.Rows.Count, 3).End(xlUp).Row).Value
    End With
       
    For i = 1 To UBound(arrVeri)
        For j = 1 To UBound(arrAna)
            If arrVeri(i, 1) = arrAna(j, 2) Then
                If arrAna(j, 23) = "Etkin" Then
                    arrAna(j, 4) = arrVeri(i, 3)
                    arrAna(j, 8) = arrVeri(i, 4)
                    arrAna(j, 20) = arrVeri(i, 5)
                    arrAna(j, 25) = arrVeri(i, 6)
                    arrAna(j, 12) = arrVeri(i, 7)
                    arrAna(j, 14) = arrVeri(i, 8)
                End If
            End If
        Next j
    Next i
   
    Worksheets("ANA SAYFA").Range("B2").Resize(UBound(arrAna), UBound(arrAna, 2)).Value = arrAna
   
    MsgBox "İşlem " & (Timer - tm) & " saniyede tamamlandı.", vbInformation
   
End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
tşkler hocam makro gayet güzel çalışıyor veri sayfasında örneğin sütunların tamamını değilde sadece bir tanesini doldurup aktar dediğimizde diğer boş sütunların ana sayfadaki karşılığını boş olduğu için siliyor. Veri sayfasında doldurmadığım sütunlar eğer boş ise işlem yapma dolu olanı aktar şeklinde düzenleme yapabilirmiyiz.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Kod:
Sub xlTR_182944()
'https://www.excel.web.tr/threads/kodun-veri-aktarirken-mevcut-diger-verileri-silmesi.182944/
  
    Dim i As Long, j As Long, tm As Double
    Dim arrVeri, arrAna
  
    tm = Timer
  
    With Worksheets("VERİ")
        arrVeri = .Range("A2:H" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value
    End With
  
    With Worksheets("ANA SAYFA")
        arrAna = .Range("B2:Z" & .Cells(.Rows.Count, 3).End(xlUp).Row).Value
    End With
      
    For i = 1 To UBound(arrVeri)
        For j = 1 To UBound(arrAna)
            If arrVeri(i, 1) = arrAna(j, 2) Then
                If arrAna(j, 23) = "Etkin" Then
                    If Not IsEmpty(arrVeri(i, 3)) Then arrAna(j, 4) = arrVeri(i, 3)
                    If Not IsEmpty(arrVeri(i, 4)) Then arrAna(j, 8) = arrVeri(i, 4)
                    If Not IsEmpty(arrVeri(i, 5)) Then arrAna(j, 20) = arrVeri(i, 5)
                    If Not IsEmpty(arrVeri(i, 6)) Then arrAna(j, 25) = arrVeri(i, 6)
                    If Not IsEmpty(arrVeri(i, 7)) Then arrAna(j, 12) = arrVeri(i, 7)
                    If Not IsEmpty(arrVeri(i, 8)) Then arrAna(j, 14) = arrVeri(i, 8)
                End If
            End If
        Next j
    Next i
  
    Worksheets("ANA SAYFA").Range("B2").Resize(UBound(arrAna), UBound(arrAna, 2)).Value = arrAna
  
    MsgBox "İşlem " & (Timer - tm) & " saniyede tamamlandı.", vbInformation
  
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
bilmiyorum doğru anladım mı?

bu vesile ile, bu durum, forumda açılan konularda gerçek dosya ve ihtiyacı bilmeyen potansiyel cevap vereceklere, konuya ilişkin tüm ihtiyaçları tarif etmeye ve yardımcı olacak her detayı önceden vermeye örnek olsun.
 
Üst