EXCEL VBA'DA AUTOFİLL [OTOMATİK DOLDURMA]

 

Excel VBA'da Otomatik Doldurma Ne İşe Yarar?

VBA AutoFill, Excel'in Autofill özelliklerinin verilerdeki bir deseni tanıdığı ve kalan görevi çift tıklamayla tamamladığı ardışık görevleri gerçekleştirir. Örneğin, Excel'deki aşağıdaki verilere bakın.

VBA Otomatik Doldurma Girişi

1'den 10'a kadar seri numaralarını artan bir sırayla eklemeye çalışıyoruz. Bunu yapmak için ilk üç sayıyı birer birer ekledik. Kalan sayıları eklemek için aşağıdaki VBA AutoFill yöntemini kullanmalıyız.

Sub AutoFill_Intro()
Range(“A1:A3”).AutoFill Destination:=Range(“A1:A10”)
End Sub

Bu kodu çalıştırdığımızda, VBA AutoFill, A1 ila A10 hücrelerindeki örüntüyü tanıyarak 1 ila 10 arasındaki sayıları A1 ila A3 hücrelerinde doldurarak bizim için işi yapar. Aşağıdaki görüntü, VBA AutoFill işlevini uygulamanın sonucudur.

VBA Otomatik Doldurma Giriş - Çıktı

Önemli Noktalar
  • VBA Otomatik Doldurma, Otomatik Doldurmayı yalnızca belirtilen hedef hücre aralığına kadar uygular.
  • VBA Otomatik Doldurma, kaynak aralığının ve doğru hedef aralığının doğru sıralanmasını gerektirir.
  • Excel elektronik tablosunda, Flash doldurma işlemini gerçekleştirmek için kısayol tuşu ALT + E'dir.
  • Kaynak ve hedef aralığı yanlışsa VBA Otomatik Doldurma hata verir.

Excel VBA'da Otomatik Doldurma Nasıl Kullanılır?

Aşağıda VBA AutoFill metodunun sözdizimi yer almaktadır.

Range(“A1:A3”).AutoFill(Destination As Range, Type As XlAutoFillType)

Sözdizimi açıklaması:

  • Range(“A1:A3”): Burada, Otomatik Doldurma'yı uygulamak için desenin zaten bazı veriler içerdiği hücre aralığını sağlıyoruz. Örneğin, 1 ila 10 arasındaki seri numaralarını doldurmak için, sırasıyla A1, A2 ve A3 hücrelerine 1, 2 ve 3 numaralarını doldurabiliriz.
  • Destination: Bu argümanda, VBA Otomatik Doldurma mantığını uygulamak istediğimiz hedef hücre aralığını sağlamalıyız.
  • Type As XlAutoFillType: Burada, seri doldurma türünü seçebiliriz. Aşağıda bu argümanın parçası olarak kullanılabilen doldurma türlerinden bazıları verilmiştir.

  • xlFillCopy
  • xlFillDays
  • xlFillFormats
  • xlFillMonths
  • xlFillSeries
  • xlFillValues
  • xlFillWeekdays
  • xlFillYears

Örnekler

Şimdi, ardışık görevlerin düzgün çalışması için VBA AutoFill metodunu uygulayabileceğimiz çeşitli pratik senaryoları açıklayacağız.

Örnek 1 – xlFillDefault

Anlamamız gereken ilk VBA AutoFill türü varsayılan AutoFill özelliğidir. “xlFillDefault” özelliği deseni tanır ve Excel'in ilk üç hücresinde verilen desene göre gereken varsayılan görevi yapar.

Örneğin Excel'deki aşağıdaki verilere bakalım.

VBA Otomatik Doldurma Giriş - Örnek 1

100'den (hücre A1) 102'ye (hücre A3) kadar seri numaralarımız var. Desende, her hücre değeri 100'den başlayarak bir artırılır.

110'a kadar seri numaraları eklememiz gerektiğini varsayalım. Sonra, xlFillDefault türünü kullanabiliriz. xlFillDefault türünü uygulamak için aşağıda listelenen adımları izleyin. İlk olarak, VBA AutoFill ardışık sayılarına bir göz atalım.

Adım 1: VBA makrosunu Visual Basic Editor penceresinde adlandırarak alt rutini başlatın .

Not: Visual Basic Editor penceresini açmak için etkin Excel çalışma kitabınızdan ALT + F11 Excel kısayol tuşunu kullanın.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 1

Adım 2: VBA AutoFill yöntemini uygulamamız gerektiğinden, öncelikle desenin zaten tanımlandığı hücre aralığını belirtmeliyiz. Burada, A1'den A3'e kadar hücrelerden tanımlanmış bir desenimiz var.

Desenin hücre referanslarını sağlamak için Aralık nesnesini aşağıdaki gibi kullanın.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 2

Adım 3: VBA RANGE nesnesi kullanılarak hücre adresi verildikten sonra , VBA'nın IntelliSense listesindeki RANGE nesnesiyle ilişkili tüm özellikleri ve yöntemleri görmek için bir nokta girin.

Aşağıdaki resim bunu göstermektedir.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 3

Adım 4: IntelliSense listesinin en iyi yanı, gerekli özelliği veya yöntemi yazmaya başladığınızda geri kalanını filtreleyip yalnızca eşleşen sonuçları göstermesidir.

“AutoFill” yazmaya başlayın. Yöntemi IntelliSense listesinde görebiliriz.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 4

Adım 5: IntelliSense listesinden “AutoFill” seçeneğini seçin veya tüm kelimeyi yazın. Şimdi, boşluk çubuğuna basın ve Autofill yönteminin argümanlarını göreceğiz.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 5

Adım 6: AutoFill yönteminin “Destination” argümanı için, RANGE nesnesinde sağlanan deseni genişletmek istediğimiz hücre aralığını sağlamalıyız. 110'a kadar sayıları eklemek istediğimizden, A1:A11 hücre aralığını veriyoruz.

Hedef hücre aralığını RANGE nesnesini kullanarak aşağıdaki gibi sağlayın.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 6

Adım 7: AutoFill yönteminin aşağıdaki argümanına erişmek için bir virgül girin. IntelliSense listesinin AutoFill türlerinin listesini gösterdiğini görebiliriz.

VBA Otomatik Doldurma Giriş - Örnek 1 - Adım 7

Adım 8: Listeden “xlFillDefault” seçeneğini seçin. Aşağıda tam kod bulunmaktadır.

Sub AutoFill_Example1()
Range(“A1:A3”).AutoFill Range(“A1:A11”), xlFillDefault
End Sub

Kodu F5 kısayol tuşuyla çalıştırdığımızda A1'den A11'e kadar olan hücrelerde 100'den 110'a kadar olan seri numaralarını görmemiz gerekiyor.

VBA Otomatik Doldurma Giriş - Örnek 1 - Çıktı

Varsayılan olarak Excel, deseni tanır ve sağlanan hücre aralığına kadar, yani A11 hücresine kadar benzer değerleri ekler.

Benzer şekilde şimdi aşağıdaki verilere bakalım.

VBA Otomatik Doldurma Giriş - Örnek 1 - veri

Bu sefer A1-A3 hücrelerindeki değerler 110'dan başlayarak 130'a doğru 10'ar artırılır. Aynı kodu bu verilere uygularsak A1-A11 hücrelerinde aşağıdaki sonucu elde ederiz.

VBA Otomatik Doldurma Giriş - Örnek 1 - Veri - Çıktı

Artık veriler 110'dan 210'a kadar doldurulmuş oldu ve her hücre bir öncekine göre 10'luk bir artış gördü.

Örnek 2 – xlFillCopy

xlFillCopy, xlFillDefault seçeneğine kıyasla farklı çalışır. xlFillCopy, belirtilen hücrelerin desenini, desen hücrelerinin biçimlendirmesiyle birlikte hedef hücrelere kopyalar.

Önceki örnekteki aynı verileri alalım.

VBA Otomatik Doldurma Giriş - Örnek 1

Yukarıda listelenen tüm adımları izleyin, xlFillDefault sağlamak yerine Otomatik Doldurma türü seçeneği olarak xlFillCopy sağlayın.

Sub AutoFill_Example2()
Range(“A1:A3”).AutoFill Range(“A1:A11”), xlFillCopy
End Sub

Kodu çalıştırın ve A1'den A11'e kadar olan hücreler için aşağıdaki sonucu alın.

VBA Otomatik Doldurma Giriş - Örnek 2 - Çıktı

Burada, A1'den A3'e kadar olan tüm hücrelerde hedefe kadar aynı üç sayıyı elde ediyoruz. Örneğin, A1'den A3'e kadar olan hücrelerdeki değerler A4'ten A6'ya kadar olan hücrelere kopyalanır.

Daha iyi anlaşılması için ilk üç hücreye biçimlendirme uygulayalım.

VBA Otomatik Doldurma Giriş - Örnek 2 - Biçimlendirme

Şimdi kodu çalıştıralım. VBA AutoFill metodunun xlFillCopy'si tarafından gerçekleştirilen aşağıdaki eylemi elde ederiz.

VBA Otomatik Doldurma Giriş - Örnek 2 - Biçimlendirme - Çıktı

xlFillCopy, A1'den A3'e kadar olan tüm hücre değerlerini kopyaladı ve hedef hücreleri aynı sayılar ve biçimle biçimlendirdi ve doldurdu. Bu nedenle, xlFillCopy seçeneği tarafından herhangi bir artış gerçekleştirilmez.

Verilen hücre değerlerini VBA Otomatik Doldurma Hedef hücrelerine kopyalar.


Örnek 3 – xlFillMonths

xlFillMonths kullanarak tüm ayları otomatik olarak doldurabiliriz. Yani, örneğin, ilk üç hücrede şu aylar var.

VBA Otomatik Doldurma Örneği 3

Toplamda 12 ay var; hepsini eklemek için A1 hücresinden başlayarak 12 hücre eklememiz gerekiyor.

Ancak bunu daha az hedef hücreyle test edelim.

Aşağıdaki kodda xlFillMonths tipini kullanıyoruz.

Sub AutoFill_Example3()
Range(“A1:A3”).AutoFill Range(“A1:A6”), xlFillMonths
End Sub

A6'ya kadar hedef hücre aralığını kullandık. O halde çalıştıralım ve karşılığında ne elde ettiğimizi görelim.

VBA Otomatik Doldurma Örneği 3 - Aralık(A6)

Hedef hücre aralığını yalnızca A6 hücresine kadar kullandığımız için, VBA AutoFill yöntemi Haziran ayına kadar ayları doldurdu. Tüm ayları elde etmek için hedef hücre aralığını 12 hücreye, yani A12 hücresine kadar genişletmeliyiz.

Aşağıdaki kod A1'den A12'ye kadar olan hücrelerdeki tüm 12 ayı ekleyecektir.

Sub AutoFill_Example3()
Range(“A1:A3”).AutoFill Range(“A1:A12”), xlFillMonths
End Sub

Bu kodu çalıştırdığımızda aşağıdaki sonucu elde edeceğiz.

VBA Otomatik Doldurma Örneği 3 - Çalıştır

Hedef hücre aralığını A12 hücresine kadar genişlettiğimiz için VBA Otomatik Doldurma yöntemi kullanılabilir tüm ayları doldurur.

Hedef hücre aralığını 12 hücrenin ötesine genişletirsek ne olur?

VBA Otomatik Doldurma hedefini A15 hücresine kadar genişletelim.

Sub AutoFill_Example3()
Range(“A1:A3”).AutoFill Range(“A1:A15”), xlFillMonths
End Sub

Kodu çalıştırın. Aşağıdaki sonucu elde edersiniz.

VBA Otomatik Doldurma Örneği 3 - Çıktı

Hedef hücrelere 12 ay sınırını aştığımızdan VBA AutoFill metodu ay isimlerini baştan yani Ocak ayından itibaren eklemeye başladı.

Tam Ay Adlarını Alın:  Daha önce, VBA Otomatik Doldurma yöntemi, ilk üç hücredeki deseni kısa adlar olarak verdiğimiz için desenleri tanımlayacak ve ayların kısa adlarını ekleyecek kadar akıllıydı.

Tam ay isimlerini almak için ilk üç hücreye aşağıdaki gibi girelim.

VBA Otomatik Doldurma Örneği 3 - tam ay adları

Şimdi aşağıdaki kodu çalıştırın.

Sub AutoFill_Example3()
Range(“A1:A3”).AutoFill Range(“A1:A12”), xlFillMonths
End Sub

Tüm ayların isimlerini alıyoruz.

VBA Otomatik Doldurma Örneği 3 - tam ad

Örnek 4 – xlFillFormats

VBA AutoFill xlFilFormats, verilen hücrelerin biçimini hedef hücreye dolduracaktır. Örneğin, Excel'deki aşağıdaki verilere bakın.

VBA Otomatik Doldurma Örneği 4

Aşağıdaki kodu xlFillFormats ile kullanalım.

Sub AutoFill_Example4()
Range(“A1:A3”).AutoFill Range(“A1:A9”), xlFillFormats
End Sub

Sadece hedef hücrelerin formatını dolduracaktır.

VBA Otomatik Doldurma Örneği 4 - Çıktı

Görüldüğü gibi, VBA AutoFill xlFillFormats yalnızca desen hücrelerinin biçimini karşılık gelen hedef hücrelerine doldurmuştur. Yani, örneğin, hücre A1 biçimi hücre A4'e kopyalanmıştır ve hücre A2 biçimi hücre A5'e kopyalanmıştır ve bu böyle devam eder.

Burada aklımızda tutmamız gereken bir şey, xlFillFormats'ın desen referansı verilen hücrelerden herhangi bir değer kopyalamadığıdır.

Örnek 5 – xlFlashFill

Hızlı Doldurma, Excel'de kullanıcıların verdiği birkaç başlangıç ​​girdisine göre metin değerinin bir kısmını çıkarmak için kullanılabilen akıllı bir özelliktir.

Örneğin Excel'deki aşağıdaki verilere bakalım.

Örnek 5

A sütununda şehrimiz ve kodu bulunmaktadır. B sütununda ise A sütunundan sadece Pin Kodunu çıkarmamız gerekmektedir.

Bunu yapmak için, pin kodunu tek tek yazmamız veya karmaşık formüller yazmamız gerekir. Ancak, Flash dolgusunu kullanarak pin kodlarını çıkarabiliriz. İlk olarak, B2 hücresine Washington şehrinin pin kodunu yazın.

VBA Otomatik Doldurma Örneği 5 - posta kodu

İlk pin kodunu girdikten sonra Flash doldurma kısayol tuşu “ALT + E” ye bastığımızda tüm pin kodları aşağıdaki gibi gelecektir.

Örnek 5 - tüm pin kodları

Benzer şekilde, aynı görevi VBA AutoFill metodunu kullanarak gerçekleştirebiliriz. Tekrar, yapmamız gereken tek şey xlFlashFill tipini kullanmaktır.

Aşağıdaki kod Flash fill tekniğini uygulayacaktır.

Sub AutoFill_Example5()
Range(“B2”).AutoFill Range(“B2:B6”), xlFlashFill
End Sub

Kodu çalıştırdığımızda, pin kodunun manuel olarak girildiği B2 hücresinden referans alınarak tüm pin kodları çıkarılacaktır.

Not : VBA Otomatik Doldurma dinamik aralığı, son kullanılan hücreyi dinamik olarak bulmamız ve Flash doldurma gerçekleştirmemiz gerektiğinde ek kod gerektirir.

Hatırlanması Gereken Önemli Şeyler

  • VBA Otomatik Doldurma, Otomatik Doldurma'yı yalnızca belirtilen hedef hücre aralığına kadar uygular.
  • VBA Otomatik Doldurma, kaynak aralığının ve aynı zamanda doğru hedef aralığının doğru sıralanmasını gerektirir.
  • Excel çalışma sayfasında, Flash doldurma işlemini gerçekleştirmek için kısayol tuşu ALT + E'dir.
  • Kaynak ve hedef aralığı yanlışsa VBA Otomatik Doldurma hata verir.
1. Excel VBA'da etkin hücrenin son satıra otomatik olarak nasıl doldurulacağını nasıl yaparım?

Son hücreye kadar Otomatik Doldurma gerçekleştirmek için VBA Otomatik Doldurma dinamik aralığını kullanmalıyız. Örneğin, aşağıdaki verilere bakın.

SSS 1

VBA AutoFill dinamik aralığını kullanabilmek için öncelikle isim kısmına soyadını gireceğiz.

SSS 1 - Soyadı

Aşağıdaki kod dinamik olarak son kullanılan hücreyi bulacak ve Flash fill işlemini gerçekleştirecektir.

Sub AutoFill_Example_FAQ()
Dim LR As Long
LR = Cells(Rows.Count, 1).End(xlUp).Row
Range(“B2”).AutoFill Destination:=Range(“B2:B” & LR), Type:=xlFlashFill
End Sub


Dinamik olarak son kullanılan satırı bulacak ve VBA AutoFill metodunu çalıştıracaktır.

SSS 1 - Çıktı

2. Excel'de VBA Otomatik Doldurma Neden Çalışmıyor?

Kaynak aralığı hedef aralığından farklıysa, VBA Otomatik Doldurma çalışmaz.

3. Excel VBA'da Sayıları Otomatik Doldurma Nasıl Yapılır?

VBA'da sayıları Otomatik Doldurmak için önce diziyi vermeli ve sonra VBA Otomatik Doldurma yöntemini kullanmalıyız. Aşağıdaki Otomatik Doldurma türlerinden herhangi birini kullanabiliriz.

xlFillDefualt
xlFillSeries

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...