Bu dosya, tekrarlayan kayıtlar içeren bir listeyi VBA ile gruplar ve her benzersiz kaydın F sütunundaki tutarını toplayarak ayrı bir sayfaya aktarır. İşlem Dictionary nesnesi ve dizi mantığıyla çalıştığı için çok satırlı listelerde de hızlı sonuç verir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sayfa1: Kaynak veri sayfasıdır. A1:F1111 aralığında kayıtlar bulunur. A sütununda kod (6001-1, 6001-10, 6001-11 gibi), C sütununda yer (FABRİKA), E sütununda ad (aa, bb, cc) yer alır. Aynı kayıtlar listede birçok kez tekrar eder.
- Rapor: Makronun sonucu yazdığı sayfadır. Örnekte üç benzersiz kayıt (6001-1, 6001-10, 6001-11) listelenir.
Makrolar
Dosyada Module1 içinde Aktar adlı tek bir makro vardır. Makro şu adımları izler:- Sayfa1'de A sütunundaki son dolu satırı bulur ve A1:F aralığındaki veriyi belleğe alır.
- Her satırda A'dan E'ye kadar olan beş sütunu "#" işaretiyle birleştirerek bir anahtar oluşturur.
- Anahtar daha önce görülmemişse kaydı yeni satır olarak listeye ekler; görülmüşse mevcut kaydı kullanır.
- Her satırın F sütunundaki değeri, ilgili benzersiz kaydın toplamına ekler.
- Rapor sayfasındaki eski içeriği temizler, sonucu A1'den itibaren yazar ve sütun genişliklerini otomatik ayarlar.
- İşlem sırasında ekran güncellemesi ve hesaplama geçici olarak kapatılır; bitişte işlem süresini saniye cinsinden gösteren bir mesaj kutusu açılır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sayfa1'deki verileri kendi listenizle değiştirin; ilk beş sütun gruplama ölçütünü, F sütunu toplanacak sayısal değeri içermelidir.
- ALT+F8 ile Aktar makrosunu çalıştırın.
- Rapor sayfasında benzersiz kayıtları ve toplamlarını kontrol edin.