Bu dosya, bir UserForm üzerindeki ListBox nesnesinde seçilen kayıtların başka bir sayfaya aktarılmasını en temel haliyle gösteren makrolu bir örnektir. Kaynak veri Sheet1 sayfasından alınır, seçilen satırlar Data Transfer Sheet sayfasına yazılır.
Dosyanın içeriği
- Sheet1: Kaynak veri sayfasıdır. A1 hücresinde "İsim", C1 hücresinde "Id" başlığı bulunur; A2 ve C2 hücrelerinde örnek kayıt (ED, 2325632) yer alır.
- Data Transfer Sheet: Aktarımın yapıldığı sayfadır. A1 hücresinde "Name", C1 hücresinde "Id#" başlığı hazır olarak gelir.
- UserForm1: İçinde ListBox1, CommandButton1 ve CommandButton2 nesneleri bulunan kullanıcı formudur.
- MyRange adlı tanımlı ad: Sheet1 üzerindeki veri aralığını dinamik olarak belirler.
Kullanılan formüller
Sayfalarda hücre formülü yoktur. Yalnızca MyRange adı, OFFSET ve COUNTA fonksiyonlarıyla tanımlanmıştır. Ad, Sheet1 sayfasında A2 hücresinden başlar; yüksekliği A2:A9 aralığındaki dolu hücre sayısı, genişliği A1:J1 aralığındaki dolu başlık sayısı kadardır. Makro, aktarılacak sütun sayısını bu addan alır.Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme veya dış bağlantı gibi işlem yoktur.- ShowTheForm (Module1): UserForm1 formunu açar.
- CommandButton1_Click: ListBox1 içindeki seçili satırları sırayla dolaşır. Her seçili satırın sütun değerlerini Sheet2 kod adlı sayfada A sütunundaki son dolu hücrenin altından başlayarak yazar. Aktarılan satırın seçimini kaldırır.
- CommandButton2_Click: Formu kapatır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Alt+F8 ile ShowTheForm makrosunu çalıştırın.
- ListBox1 içinde aktarmak istediğiniz satırları seçin.
- CommandButton1 düğmesine tıklayın; seçilen kayıtlar hedef sayfaya eklenir.
- İşlem bitince CommandButton2 düğmesiyle formu kapatın.