sayfalar arasına veri aktarma, birleştirme

Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
Ekte örnek tablo hazırladığım soruya cevap büyük ihtimalle makro ile olabilir diye düşündüm.

Ayrıntılı Soru açıklamasını dosyada yapmaya çalıştım.

Sayfa 2de belli sütunlardaki hücrelere sırayla = yapıp sayfa1den alacağı yeri seçmek zorunda kalıyorum.
sayfa 1 de veri çok olduğu için bu işlem bitmek bilmiyor.
sayfa1deki tablolar aralıksız sıralı olduğu için formülleme ile ya da makro ile bu işlemi bir kerede çözebilirmiyiz?

Ekteki açıklamalar karmaşıksa ya da anlaşılmıyorsa anlayamadığınız bölümleri daha net açıklamaya çalışabilirim.

Yardımlarınız için şimdiden teşekkürler
 

Ekli dosyalar

Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
acaba sorumu tam açıklayamamışmıyım?
 
Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
birleştir işlevini makro ile devamlı hale getirmek

Selamlar,

Bir çalışma sayfasının veri sayfası olsun bir de özet diyelim.

Veri sayfasındaki a1, c1 a2 c2... hücrelerini, özet sayfasında a1 hücreine =birleştir(.....) ile getirdik.

veri sayfasında 15 satır sonra benzer hücreler var özet tablosunda a2 hücresine aktardık(a16,c16 a17 c17 hücrelerini özet sayfasına = birleştir yaptık.

Ama bu böyle devam edecek sürekli bu formulü kurmak yerine makro ile veri sayfasında son birleştirlen hücreden sonra veri sayfasında son birleştirilen bölümden sonra
15 satır atlayıp seçilmesi gereken yeri seçse ve özet sayfasında son veri girilen yere birleştirse?

Bunu nasıl oluşturuabiliriz?

İlginiz için teşekkürler.

Daha önce farklı şekilde sordum ama cevap alamadığım için tekrar yazmak zorunda kaldım.

Konu kalabalığı oluşturduğum için kusuruma bakmayın.

Örnek dosya ve daha önce sorduğum bölüm;


http://www.excel.web.tr/f48/sayfalar-aras-na-veri-aktarma-birlestirme-t61879.html
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.

Kod:
Sub rapor()
Dim yüzde As String
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
s2.Range("a2:d10000").ClearContents
'*******************************************************************************
For i = 1 To s1.[d65536].End(3).Row Step 15
    For k = 4 To 12 Step 4
        sat = s2.[a65536].End(3).Row + 1
        For j = 0 To 9
            If j = 0 Then s2.Cells(sat, "a").Value = s1.Cells(i + j, k + 2).Value
            If j = 1 Then s2.Cells(sat, "d").Value = s1.Cells(i + j, k + 1).Value
            If j = 8 Then s2.Cells(sat, "b").Value = s1.Cells(i + j, k + 1).Value
            If j = 3 Then yüzde = Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 4 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 5 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 6 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 6 Then s2.Cells(sat, "c").Value = yüzde
        Next j
    Next k
Next i
'*******************************************************************************
MsgBox "Bitti", vbInformation, "Bilgi"
Set s1 = Nothing
Set s2 = Nothing
End Sub
 

Ekli dosyalar

Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
kod açıklama

Recep Bey,

İlginiz ve yardımınız için teşekkür ediyorum.

Kodlamada hangi kodun hangi işlemi yaptığını kısaca belirtebilir misiniz?

set s2=sheets("sayfa2") sayfa adını her seferinde yazamamak için s2 olarak yazıyorsunuz.

sat = s2.[a65536].End(3).Row + 1 sayfa 2 de boş olan satırın bir fazlası mı oluyor?

For i = 1 To s1.[d65536].End(3).Row Step 15 i sayfa birdeki i sütunu mu acaba? burda 15 satır aşağısına gidiyor herhalde ama i sütunu için mi?

kendi listemde sayfa adları falan farklı olduğu için kodalr üzerinde oynamam gerekecek sadece kod adını değiştirdim ama can't execute code in break mode yazısı çıktı ne yapmam lazım?
 
Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
tamam meseleyi çözdüm yalnız benim tablolarım 4.satırdan başlıyor bu kodun neresini değiştirmem lazım ki doğru yerleri aktarsın?
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıda biraz açıklamaya çalıştım.

Kod:
Sub rapor()
Dim yüzde As String
Set s1 = Sheets("Sayfa1") [COLOR=seagreen]'Sayfa adını s1 değişkenine atıyoruz.Burada Sayfa1 adını kendi dosyanızdaki sayfa adını yazanız.[/COLOR]
Set s2 = Sheets("Sayfa2") [COLOR=seagreen]'Üstteki ile aynı [/COLOR]
s2.Range("a2:d10000").ClearContents  [COLOR=seagreen]'Sayfa2'deki eski bilgileri siliyoruz.[/COLOR]
'*******************************************************************************
For i = 1 To s1.[d65536].End(3).Row Step 15 [COLOR=seagreen]' Buradaki i herhangi bir değişken.i kolunu ile bağlantısı yok.For Next döngülerinde genelde i,j kullanılır.15 satır atlayarak gidiyor.[/COLOR]
    For k = 4 To 12 Step 4 [COLOR=seagreen]'Buda sağa doğru 3 etiketi bulmak için 4 kolon atlayarak gidiyor.[/COLOR]
        sat = s2.[a65536].End(3).Row + 1 [COLOR=seagreen]'Sayfa2'ye kaydedilen son satırın 1 fazlasını buluyor.[/COLOR]
        For j = 0 To 9 [COLOR=seagreen]' Burasıda 1 etiketin yukarıdan aşağıya doğru okuyor[/COLOR]. 
            If j = 0 Then s2.Cells(sat, "a").Value = s1.Cells(i + j, k + 2).Value [COLOR=seagreen]'Eğer j=0 ise Sayfa2'nin a kolonuna 902 yaz gibi....[/COLOR]
            If j = 1 Then s2.Cells(sat, "d").Value = s1.Cells(i + j, k + 1).Value
            If j = 8 Then s2.Cells(sat, "b").Value = s1.Cells(i + j, k + 1).Value
            If j = 3 Then yüzde = Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 4 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 5 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 6 Then yüzde = yüzde & ", " & Format(s1.Cells(i + j, k + 3).Value, "0%") & " " & s1.Cells(i + j, k).Value
            If j = 6 Then s2.Cells(sat, "c").Value = yüzde
        Next j
    Next k
Next i
'*******************************************************************************
MsgBox "Bitti", vbInformation, "Bilgi"
Set s1 = Nothing
Set s2 = Nothing
End Sub
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
...yalnız benim tablolarım 4.satırdan başlıyor bu kodun neresini değiştirmem lazım ki doğru yerleri aktarsın?
For i = 1 To s1.[d65536].End(3).Row Step 15

satırında

For i = 4 To s1.[d65536].End(3).Row Step 15

yaparak deneyebilirmisiniz?
 
Katılım
17 Haziran 2008
Mesajlar
96
Excel Vers. ve Dili
Microsoft Office 2016 türkçe
Altın Üyelik Bitiş Tarihi
14-01-2024
excel.web.tr ailesine teşekkürler

Sadece bana ne kadar faydalı olduğunuzu göstermek adına dosya ekliyorum açıklamalarınızla formül mantığını çözdüm ve üstine bir de ilave sütun ekledim.

Gerçekten çok faydalı oldu şimdilik sadece taklit benimki.Bilgiyi farklı konularda değerlendirmek için farklı koşullarda kullanabilmem lazım.

Excel.wweb.tr yi bu yüzden çok seviyorum insanlar bilgi aktarmaktan zevk alıyor.

Sorulan sorulardan, anlamamalarından yılmıyor.

Sonuç olarak öğrenmekten ve öğretmekten memnun olan çok güzel bir kitle buluşuyor burada.

Emeğiniz için çok teşekkürler.

Excel.web.tr ailesinin içinde bulunduğum için kendimi şanslı hissediyorum
 

Ekli dosyalar

Üst