3 ayrı sayfadaki veriyi birleştirmek

Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Herkese hayırlı akşamlar,
Elimdeki tabloda 3 tane sheet var. 2008, 2009, 2010
Dördüncü bir sheete TOPLAM olarak bunları almak istiyorum.
Ama her stoğu altalta almak istiyorum.
Yani 2008 deki A stoğunun altına 2009 daki A stoğu
2009 daki E stoğunun altına 2010 daki E stoğu vs....
Ekte zaten detaylı anlatmaya çalıştım.
Baya uğraştım ama konu beni aştı o yüzden sizden yine yardım istiyorum :)

Teşekkürler
 

Ekli dosyalar

halit3

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

Sub birlestir()
Worksheets("TOPLAM").Rows("2:65000").ClearContents
sat = Worksheets("TOPLAM").Cells(Rows.Count, "A").End(3).Row + 1
For r = 1 To ActiveWorkbook.Sheets.Count
If Sheets(r).Name <> "TOPLAM" Then
For i = 2 To Worksheets(Sheets(r).Name).Cells(Rows.Count, "A").End(3).Row
Worksheets("TOPLAM").Cells(sat, 1).Value = Worksheets(Sheets(r).Name).Cells(i, 1).Value
Worksheets("TOPLAM").Cells(sat, 2).Value = Sheets(r).Name
For j = 2 To 14
Worksheets("TOPLAM").Cells(sat, j + 1).Value = Worksheets(Sheets(r).Name).Cells(i, j).Value
Next
sat = sat + 1
Next i
End If
Next r
Worksheets("TOPLAM").Range("A2:O" & sat).Sort Key1:=Worksheets("TOPLAM").Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
MsgBox "işlem tamam"
End Sub
 
Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Öncelikle bu saatte cevabınız için çok teşekkür ederim.
Verdiğiniz kodu denedim, çokta güzel oldu.
Tabiiki benim elimdeki tabloda binlerce satır olacak, hepsi için geçerli olacaktır sanırım.
Sadece bişey daha eklemek istesek??
Olmayan senelerdeki stok kodlarınıda ekleyip rakamlarınada sıfır atabilirmiyiz??
Yani örnekte A stoğu 2008 ve 2009 da var ama 2010 da yok.
TOPLAM sayfasına A 2010 u da ekleyip aylarada sıfır atma şansı olurmu?
Olmasada bu şekildede sanırım işime çok yarıyacak.
Tekrar tekrar teşekkür ederim.
Allah razı olsun.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Öncelikle bu saatte cevabınız için çok teşekkür ederim.
Verdiğiniz kodu denedim, çokta güzel oldu.
Tabiiki benim elimdeki tabloda binlerce satır olacak, hepsi için geçerli olacaktır sanırım.
Sadece bişey daha eklemek istesek??
Olmayan senelerdeki stok kodlarınıda ekleyip rakamlarınada sıfır atabilirmiyiz??
Yani örnekte A stoğu 2008 ve 2009 da var ama 2010 da yok.
TOPLAM sayfasına A 2010 u da ekleyip aylarada sıfır atma şansı olurmu?
Olmasada bu şekildede sanırım işime çok yarıyacak.
Tekrar tekrar teşekkür ederim.
Allah razı olsun.
olmayan verileri nasıl aldıracağız ancak şöyle yapmak gerekiyor sayfanın birine muhtemelen olması gereken verileri yazmak gerekiyor daha sonra bu veriler sayfalarda varsa değerlerini getirmek gerekiyor yoksa boş olarak sıfır değeri verilir.
 
Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Haklısınız olmayan veriyi getiremeyiz, zaten çokta önemli değil oraya sıfır yazması, bişey yazmasada anlaşılacak o yıl satılmadığı.
Dosyada bişey eklemeyi unutmuşum, stok kodu ndan sonra birde stok adı olacaktı. Bu şekilde makronuzu gerçek dosyama uyguladım ama en sondaki TOPLAM sütunu çıkmadı. Tabi araya stok adı sütunu girince onu getiremedi heralde. Nasıl bir düzeltmeyle bunu ekleyebilirim????
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
örnek dosyanı eklememişsin nereye ekleneceğini nasıl bileceğiz.

Sub birlestir()
Worksheets("TOPLAM").Rows("2:65000").ClearContents
sat = Worksheets("TOPLAM").Cells(Rows.Count, "A").End(3).Row + 1
For r = 1 To ActiveWorkbook.Sheets.Count
If Sheets(r).Name <> "TOPLAM" Then
For i = 2 To Worksheets(Sheets(r).Name).Cells(Rows.Count, "A").End(3).Row
Worksheets("TOPLAM").Cells(sat, 1).Value = Worksheets(Sheets(r).Name).Cells(i, 1).Value
Worksheets("TOPLAM").Cells(sat, 2).Value = Worksheets(Sheets(r).Name).Cells(i, 2).Value
Worksheets("TOPLAM").Cells(sat, 3).Value = Sheets(r).Name
For j = 3 To 14
Worksheets("TOPLAM").Cells(sat, j + 1).Value = Worksheets(Sheets(r).Name).Cells(i, j).Value
Next
sat = sat + 1
Next i
End If
Next r
Worksheets("TOPLAM").Range("A2:p" & sat).Sort Key1:=Worksheets("TOPLAM").Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
MsgBox "işlem tamam"
End Sub
 
Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Çok pardon, daha önceki dosya duruyodur diye eklememiştim.
Gerçi dediğim gibi çokta önemli bi sorun değil, zaten böylede çok işime yaradı.
Çok teşekkür ederim..
Kolay gelsin.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Çok pardon, daha önceki dosya duruyodur diye eklememiştim.
Gerçi dediğim gibi çokta önemli bi sorun değil, zaten böylede çok işime yaradı.
Çok teşekkür ederim..
Kolay gelsin.
iyi çalışmalar
 
Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Tekrar merhaba,
Ben biraz denedim ama bulamadım, acaba 5 sheet olan datayı nasıl birleştiririz???
Yani işi biraz genişlettim :)
3 yıl yerine 5 yıl olarak almak istesem? 2 yıl daha ekledim tabloya.
2006, 2007, 2008, 2009, 2010 sheet leri oldu yani.
Bunu nasıl birleştiririz???
Teşekkürler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kod kaç sayfa olursa olsun aynı sutunların hepsini birleştiriyor.

denedinizmi hiç
 
Katılım
28 Ocak 2008
Mesajlar
96
Excel Vers. ve Dili
Office 2010
Denedim, verdiği hatayı yazıyorum şimdi derken:tongue:, bişeyi farkettimki Sayfa 6 olarak kalmış, yani başlık vermemişim. TOPLAM olarak sheet in adını değiştirdikten sonra tekrar denedim ve oldu :)
Çok teşekkürler...
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Denedim, verdiği hatayı yazıyorum şimdi derken:tongue:, bişeyi farkettimki Sayfa 6 olarak kalmış, yani başlık vermemişim. TOPLAM olarak sheet in adını değiştirdikten sonra tekrar denedim ve oldu :)
Çok teşekkürler...
iyi çalışmalar
 
Üst