Farklı sayfalardaki verileri tek sayfada birleştirmek,toplamak.

Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Arkadaşlar hazırladığım dosyaya bakarsanız 300RODAJ 1.MAKİNE - 300RODAJ 2.MAKİNE adında sayfalar var bunun gibi sayfalar olacak daha çoğaltacağım. Kullanıcı bu sayfalara veri girince girdiği veriler VERİLER adlı sayfada toplanmasını istiyorum. Bu bir butonla da yapılabilir makro olabilir veya bir fonksyon yazarak da olabilir o kısmını bilmiyorum sizlerin görüşüne sunuyorum. Dün de paylaştım bu konuyu yardımcı olan kimse çıkmadı, konunun benim açımdan biraz önemi var şimdiden yardımlarınız için çok teşekkür ederim ek olarak sormak istedikleriniz var ise sorabilirsiniz.

Teşekkürlerr
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodu boş bir modüle uygulayıp deneyiniz.

Kodu istediğiniz olaya atayıp çalıştırabilirsiniz.

C++:
Option Explicit

Sub Aktar()
    Dim Sayfa As Worksheet, S1 As Worksheet, Son As Long, Satir As Long
    
    Application.ScreenUpdating = False
    
    Set S1 = Sheets("VERİLER")
    
    S1.Range("A3:F" & S1.Rows.Count).Clear
    Satir = 3
    
    For Each Sayfa In ThisWorkbook.Worksheets
        Select Case Sayfa.Name
            Case "VERİLER", "GİZLİ KALACAK"
            Case Else
                Son = Sayfa.Cells(Sayfa.Rows.Count, 2).End(3).Row
                If Son > 2 Then
                    Sayfa.Range("A3:F" & Son).Copy S1.Cells(Satir, 1)
                    Satir = S1.Cells(S1.Rows.Count, 2).End(3).Row + 1
                End If
        End Select
    Next

    S1.Range("A3:F" & S1.Rows.Count).Sort S1.Range("A3"), xlAscending
    
    Set S1 = Nothing
    
    Application.ScreenUpdating = True
    
    MsgBox "Veri aktarımı tamamlanmıştır.", vbInformation
End Sub
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Korhan Bey, öncelikle çok teşekkür ederim yazdığınız kodu makro kısmına kopyaladım çalıştır diyince Veriler sayfasına aktarıyor. Fakat kullanıcı 300RODAJ 1.MAKİNE - 300RODAJ 2.MAKİNE adlı sayfalara veri girdikten sonra o girilen veri otomatik olarak VERİLER sayfasına düşmüyor. Konuya hakim olamadığım için yapamadım kusura bakmayın bunu ekranda bir butona tıklamayla nasıl yapabiliriz yada başka bir yolu var mıdır ?
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
yazdığınız kodu kayıt ettikten sonra
Kodu boş bir modüle uygulayıp deneyiniz.

Kodu istediğiniz olaya atayıp çalıştırabilirsiniz.

C++:
Option Explicit

Sub Aktar()
    Dim Sayfa As Worksheet, S1 As Worksheet, Son As Long, Satir As Long
   
    Application.ScreenUpdating = False
   
    Set S1 = Sheets("VERİLER")
   
    S1.Range("A3:F" & S1.Rows.Count).Clear
    Satir = 3
   
    For Each Sayfa In ThisWorkbook.Worksheets
        Select Case Sayfa.Name
            Case "VERİLER", "GİZLİ KALACAK"
            Case Else
                Son = Sayfa.Cells(Sayfa.Rows.Count, 2).End(3).Row
                If Son > 2 Then
                    Sayfa.Range("A3:F" & Son).Copy S1.Cells(Satir, 1)
                    Satir = S1.Cells(S1.Rows.Count, 2).End(3).Row
                End If
        End Select
    Next

    Set S1 = Nothing
   
    Application.ScreenUpdating = True
   
    MsgBox "Veri aktarımı tamamlanmıştır.", vbInformation
End Sub
yazdığınız kodu kayıt ettikten sonra kullanıcının bilgi girdiği sayfaya bir şekil ile buton yapıyorum ve o butona bu makroyu atıyorum bu şekilde çalışıyor. Emeğinize sağlık peki ben başka sayfalar da ekleyeceğim bu excelin içine o sayfaları bu koda nasıl ilave edeceğim ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod VERİLER ve GİZLİ KALACAK dışındaki bütün sayfaları VERİLER sayfasına aktarır. Eğer aktarılmayacak başka sayfalar varsa hem bir önceki önerdiğim kod da hemde yeni önerdiğim kod da aşağıdaki satıra sayfa adını eklemeniz yeterli olacaktır.

Case "VERİLER", "GİZLİ KALACAK"


Dosyanızın "BuÇalışmaKitabı" bölümüne aşağıdaki kodu uygulayıp deneyiniz.

İlgili sayfalarda yaptığınız her değişiklikte kod yeniden çalışacaktır.

C++:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Select Case Sh.Name
        Case "VERİLER", "GİZLİ KALACAK"
        Case Else
        Call Module1.Aktar
    End Select
End Sub
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Kod VERİLER ve GİZLİ KALACAK dışındaki bütün sayfaları VERİLER sayfasına aktarır. Eğer aktarılmayacak başka sayfalar varsa hem bir önceki önerdiğim kod da hemde yeni önerdiğim kod da aşağıdaki satıra sayfa adını eklemeniz yeterli olacaktır.

Case "VERİLER", "GİZLİ KALACAK"


Dosyanızın "BuÇalışmaKitabı" bölümüne aşağıdaki kodu uygulayıp deneyiniz.

İlgili sayfalarda yaptığınız her değişiklikte kod yeniden çalışacaktır.

C++:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Select Case Sh.Name
        Case "VERİLER", "GİZLİ KALACAK"
        Case Else
        Call Module1.Aktar
    End Select
End Sub
Hocam bunu denemeden önce ilk attığınız kodu denedim, ilgili sayfalara 3-4 satır bilgi girişi yaptığımda sadece 2 satırını VERİLER sayfasına aktarıyor başka sayfaya geçip 3-4 satır da orada giriyorum oradan da sadece 1 satırını falan VERİLER sayfasına aldı. Dosyayı da sizinle paylaşıyorum şuanda.
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Hocam bunu denemeden önce ilk attığınız kodu denedim, ilgili sayfalara 3-4 satır bilgi girişi yaptığımda sadece 2 satırını VERİLER sayfasına aktarıyor başka sayfaya geçip 3-4 satır da orada giriyorum oradan da sadece 1 satırını falan VERİLER sayfasına aldı. Dosyayı da sizinle paylaşıyorum şuanda.
yüklerken yanlış dosyayı yüklemişim, dosya şu olacak:
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Satir değişkeni üzerine +1 yapmayı unutmuşum. Bu sebeple satırları üst üste yazıyordu.

#2 nolu mesajımı revize ettim. Son halini deneyiniz. Kod sayfalardaki B sütunundaki dolu satır sayısına göre işlem yapmaktadır. Yani bir nevi B sütunu zorunlu alan gibi düşünebilirsiniz. Eğer bu sütundaki hücrelerin boş olma ihtimali varsa başka bir sütunu kullanabilirsiniz.
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Satir değişkeni üzerine +1 yapmayı unutmuşum. Bu sebeple satırları üst üste yazıyordu.

#2 nolu mesajımı revize ettim. Son halini deneyiniz. Kod sayfalardaki B sütunundaki dolu satır sayısına göre işlem yapmaktadır. Yani bir nevi B sütunu zorunlu alan gibi düşünebilirsiniz. Eğer bu sütundaki hücrelerin boş olma ihtimali varsa başka bir sütunu kullanabilirsiniz.
Denedim şuan için hiç sıkıntısız çalışmaktadır hocam çok teşekkür ederim, buna ekleyeceğim daha çok fazla sayfa olacak onları da otomatik alacaktır bu kod heralde, dediğiniz gibi dahil etmek istemediğim sayfaları kodun içindeki Case "VERİLER", "GİZLİ KALACAK" bu bölüme sayfa adını yazarak dahil olmamasını sağlayacağım sanırım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyin sıkıntı yaşarsanız yardımcı oluruz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sıralama özelliğini de ekledim.

#2 nolu mesajımı revize ettim. Deneyiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben eklemiş olduğunuz dosyada deniyorum bir sorun yaşamadım.

Sorun yaşadığınız örnek dosyayı paylaşır mısınız?
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Ben eklemiş olduğunuz dosyada deniyorum bir sorun yaşamadım.

Sorun yaşadığınız örnek dosyayı paylaşır mısınız?
Buyrun hocam ekledim, fark ederseniz araya DENEME1 ve DENEME2 sayfaları koydum, dediğiniz şekilde koda ekleyerek o sayfalardan veri almasını da engelledim fakat VERİLER sayfasında o sayfaların boşluğu yer alıyor.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tablo özelliği eklemişsiniz.

Onu kaldırıp deneyiniz.
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Evet isteğe göre filtrelenebilmesi için öyle birşey yapmıştım. Bozulacağını tahmin edemedim, ara sayfalar da bunun gibi tablo özellikli olsa çok daha iyi olur, bunu düzeltmek için ne yapmak gerekir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tablo yerine normal FİLTRE özelliğini ekleyebilirsiniz.
 
Katılım
8 Mart 2021
Mesajlar
20
Excel Vers. ve Dili
excel 2016- İngilizce
Altın Üyelik Bitiş Tarihi
08-03-2022
Tablo yerine normal FİLTRE özelliğini ekleyebilirsiniz.
Tamamdır onu o şekilde düzelteceğim.

Bunu farklı bir soru başlığı altında mı açmalıyım bilmiyorum ama;

ek olarak şunu sormak istiyorum; gördüğünüz üzere sayfalara birbirine bağlı seçmeli hücre yapıyorum. Benim size attığım dosyada sadece 1 sayfa için geçerli olan bilgileri içeren GİZLİ KALACAK sayfasındaki malzemeler ve başlıkları var. Bunu ekleyeceğim her sayfa için yapmam gerekiyor ve o her sayfadaki başlıklar ve bilgiler farklı olacak. Bunun için öenereceğiniz daha mantıklı bir yol var mıdır acaba? bu şekilde mi ilerlemeliyim ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sanırım Veri Doğrulama (Data Validation) özelliğinden bahsediyorsunuz.

Her sayfada farklı liste kullanacaksanız GİZLİ KALACAK sayfanızda bu düzeni kurmanız gerekir. Orada hazırlayacağınız listeleri veri doğrulama menüsünde tanımlayıp kullanabilirsiniz.

Ve konu başlığı ile bağlantısı olmayan sorularınızı yeni başlık açarak sormalısınız.
 
Üst