Sayfalar arası veri aktarı (yardım)

Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Merhaba

Liste,eses,brs isimli sayfalarım var. Liste sayfasından diğer iki sayfaya veri aktarıyorum. Lakin takıldığım nokta var, yardımcı olurmusunuz

1) Örneğin Aktar makrosunu çalıştırarak liste sayfasındaki verileri diğer sayfalara ekledik. Sonra liste sayfasındaki verilerden herhangi birini değiştirdik. aktar makrosunu tekrar çalıştırdığımızda ;

Sanki yeni bir satırmış gibi dolu hücrenin altına değişlik yaptığımız satırı ekliyor. Oysaki ben böyle durumlarda eklemesini değil, var olanı güncellemesini istiyorum
 

Ekli dosyalar

Son düzenleme:
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Konu günceldir
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba

Liste,eses,brs isimli sayfalarım var. Liste sayfasından diğer iki sayfaya veri aktarıyorum. Lakin takıldığım nokta var, yardımcı olurmusunuz

1) Örneğin Aktar makrosunu çalıştırarak liste sayfasındaki verileri diğer sayfalara ekledik. Sonra liste sayfasındaki verilerden herhangi birini değiştirdik. aktar makrosunu tekrar çalıştırdığımızda ;

Sanki yeni bir satırmış gibi dolu hücrenin altına değişlik yaptığımız satırı ekliyor. Oysaki ben böyle durumlarda eklemesini değil, var olanı güncellemesini istiyorum
kod:

Kod:
Sub aktar()

Set S1 = ThisWorkbook.Worksheets("liste")
For i = 2 To S1.Range("a65536").End(xlUp).Row
Set S2 = ThisWorkbook.Worksheets(S1.Cells(i, 5).Value)

aranan1 = S1.Cells(i, 1)
aranan2 = S1.Cells(i, 2)

sat = 0

For Each bul In S2.Range("F5:G500")

If bul = aranan1 Then
sat1 = bul.Row
bulunan1 = S2.Cells(sat1, "f").Value
bulunan2 = S2.Cells(sat1, "g").Value

If aranan1 = bulunan1 And aranan2 = bulunan2 Then
sat = 1
S2.Cells(sat1, 6) = S1.Cells(i, 1)
S2.Cells(sat1, 7) = S1.Cells(i, 2)
S2.Cells(sat1, 8) = S1.Cells(i, 3)
S2.Cells(sat1, 9) = S1.Cells(i, 4)
S2.Cells(sat1, 10) = S1.Cells(i, 5)
Exit For
End If

End If

Next

If sat = 0 Then
sonsatir = S2.Range("f65536").End(xlUp).Row + 1
S2.Cells(sonsatir, 6) = S1.Cells(i, 1)
S2.Cells(sonsatir, 7) = S1.Cells(i, 2)
S2.Cells(sonsatir, 8) = S1.Cells(i, 3)
S2.Cells(sonsatir, 9) = S1.Cells(i, 4)
S2.Cells(sonsatir, 10) = S1.Cells(i, 5)
End If
Set S2 = Nothing
Next i
MsgBox "Aktarma İşlemi BİTTİ.", vbInformation
End Sub
 
Katılım
23 Aralık 2013
Mesajlar
8
Excel Vers. ve Dili
office 2007
Meraba arkadaşlar belki konu ile ilgili yanlış yere yazıyorum fakat. Ben bir sayfa oluşturmak istiyorum ve ana sayfaya oluşturmuş oldugum listedeki verileri girdiğimde kime aitse ahmet mehmet hasan o sayfalara otamatik olarak aktarmasını istiyorum. Bu konuda yardım edebilirmisiniz.
 
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Halit bey teşekkür ediyorum. kod süper çalışyor. sadece öğrenme amacı ile ;

Kod:
aranan1 = S1.Cells(i, 1)
aranan2 = S1.Cells(i, 2)

For Each bul In S2.Range("F5:G500")
If bul = aranan1 Then
sat1 = bul.Row
bulunan1 = S2.Cells(sat1, "f").Value
bulunan2 = S2.Cells(sat1, "g").Value
If aranan1 = bulunan1 And aranan2 = bulunan2 Then
sat = 1
1) aranan1 aranan2 kodları neyi ifade ediyor. aranan3,4,5 olabilirmi?
2) örneğin ben liste sayfasında D sutununda değişklik yaptım. Diğer sayfalarda ona karşılk gelen I sutunu olmasına rağmen kod süper çalışıyor F5:G500 amacı ne o zaman
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Halit bey teşekkür ediyorum. kod süper çalışyor. sadece öğrenme amacı ile ;

Kod:
aranan1 = S1.Cells(i, 1)
aranan2 = S1.Cells(i, 2)

For Each bul In S2.Range("F5:G500")
If bul = aranan1 Then
sat1 = bul.Row
bulunan1 = S2.Cells(sat1, "f").Value
bulunan2 = S2.Cells(sat1, "g").Value
If aranan1 = bulunan1 And aranan2 = bulunan2 Then
sat = 1
1) aranan1 aranan2 kodları neyi ifade ediyor. aranan3,4,5 olabilirmi?
2) örneğin ben liste sayfasında D sutununda değişklik yaptım. Diğer sayfalarda ona karşılk gelen I sutunu olmasına rağmen kod süper çalışıyor F5:G500 amacı ne o zaman

aranan1 = S1.Cells(i, 1) Liste sayfasındaki A sütunundaki değer
aranan2 = S1.Cells(i, 2) Liste sayfasındaki B sütunundaki değer

For Each bul In S2.Range("F5:G500") Tanımlı sayfalardaki ilgili hücreler burada arama yaparak eğer eski veri varsa üstüne yazdırıyoruz.
 
Üst