Bu dosya, A sütununda alt alta yazılmış değerleri ADO (ActiveX Data Objects) bağlantısı kullanan bir Kullanıcı Tanımlı Fonksiyon (KTF) ile tek bir hücrede birleştirmeyi gösterir. Hücreleri döngüyle tek tek gezmek yerine, Excel dosyasının kendisi veri kaynağı olarak sorgulanır.
Dosyanın içeriği
- Sayfa1: Örnek veriler A sütunundadır (A2 hücresinde "a", A3 hücresinde "c" gibi değerler). Fonksiyonun sonucu bu sayfadaki bir hücreye yazılır.
- Module1: VBA modülünde ED adlı fonksiyon bulunur.
Makrolar
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.- ED: Metin döndüren bir fonksiyondur. Application.Volatile ile tanımlandığı için çalışma sayfasında her hesaplamada yeniden çalışır. Önce adodb.Connection ve adodb.Recordset nesneleri oluşturulur. Bağlantı, microsoft.ace.oledb.12.0 sağlayıcısı ile çalışma kitabının kendi yolu üzerinden açılır ve başlık satırı yokmuş gibi okunur (hdr=no).
- A sütunundaki son dolu satır bulunur. Ardından Sayfa1'in A1 hücresinden bu satıra kadar olan aralığı okuyan bir sorgu çalıştırılır. Kayıtlar sırayla gezilir, değerler uç uca eklenir ve birleşmiş metin hücreye döndürülür. Değerler arasına ayraç konmaz.
- Kod yalnızca çalışma kitabının kendisini okur; dosya silme veya dışarıya bağlantı işlemi içermez.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Birleştirilecek değerleri Sayfa1'de A sütununa alt alta girin.
- Sonucu görmek istediğiniz boş bir hücreye şu formülü yazın:
=ED() - Değerler hücrede birleşik metin olarak listelenir; A sütunundaki veriler değiştikçe sonuç yeniden hesaplanır.
- Fonksiyonu kendi dosyanızda kullanmak için Module1 içindeki kodu VBA düzenleyicisinde kendi çalışma kitabınıza aktarın ve sayfa adını (Sayfa1) buna göre düzenleyin.