Excel VBA

Excel'de verilerinizi kolayca analiz etmek ve güçlü raporlar oluşturmanızı öğretecek yazılar
Bu makale'de Excel makroları ile çalışmak için gerekli olan Makroları Etkinleştirme nasıl yapılır hakkında bilgiler verilmektedir. Makro, yinelenen görevi otomatikleştirmek için kullanabildiğiniz ve görevi gerçekleştirmeniz gerektiğinde çalıştırılan bir dizi komuttur. Makro oluşturma hakkında bilgi edinmek istiyorsanız Makro oluşturma linkine bakmanız faydalı olacaktır. İleti Çubuğu görüntülendiğinde makroları etkinleştirme Makroların bulunduğu dosyayı açtığınızda kalkan simgesiyle birlikte sarı ileti çubuğu ve İçeriği Etkinleştir düğmesi görüntülenir. Makroyu veya makroları güvenli bir konumdan alındığını biliyorsanız şu yönergeleri uygulayın: İleti Çubuğu’nda İçeriği Etkinleştir’e tıklayın. Dosya açılır ve artık güvenilir belge...
Bazı durumlarda bir metni belirlediğiniz bir ayraç ile bölmek isteyebilirsiniz. Bu durumda VBA üzerinden bir fonksiyon tanımlamak isterseniz; Function SplitText(Metin As String, bolucu As String) SplitText = Split(Metin, bolucu) End Function Function ile başlayan bir prosedür eğer özelikler Private olarak belirtilmedi ise Public güvenlik anahtarına sahip olacağından Excel üzerinde formül olarak doğrudan kullanılabilir. Bu durumda yukarıdaki fonksiyonu Excel'den şöyle çağırabilirsiniz: =SplitText(A1;";") Function SplitText(Metin As String, bolucu As String) Bu fonksiyon iki parametre ile çalışıyor. İlki Metni alıyor, ikincisi neye göre böleceğini soruyor. SplitText = Split(Metin, bolucu) VBA Split fonksiyonu ile metni bölücü...
Bazen bir formül başka bir çalışma kitabına başvuruyor olabilir. Bu durumda iki ihtimalden söz edebiliriz. 1-) Herhangi bir nedenle Bağlantı yapılan kitap yolu değişmiş olabilir. 2-) Bağlantılı kitaptaki veriler ile formülün güncellenmesi gerekebilir. Mesela yukarıdaki iki şekle baktığımızda benim istediğim şu Kartların alındı dosya yolu sabit, dosya adı da sabit. Ancak Bağlantıları düzenle penceresinde görüldüğü üzere Kartlar.xlsm kitabının adında tarih bilgisi de var. Halbuki bağlantının Kartlar.xlsm için yapılması gerekiyor. İşte bunun gibi bağlantı hatalarını düzeltmek veya bağlantı yapılan çalışma kitabındaki değerler ile verilerinizi güncelleştirmek için aşağıdaki makroyu kullanabilirsiniz. Sub Auto_Open() Dim yol As...
WorkSheet Change Nedir? Kelime anlamı olarak WorkSheet = Çalışma Sayfası Change = Değişiklik yapmak anlamındadır. Bu anlamlardan yola çıkarak WorkSheet Change için Çalışma Sayfasında Yapılan Değişiklikler Sonucu Çalışan Kod Prosedürü olarak tanımlama yapabiliriz. WorkSheet Change Neleri Değişiklik Olarak Kabul Eder? ** Çalışma sayfasındaki herhangi bir Hücreye 1- Veri girişi 2- Var olan verinin silinmesi 3- Herhangi bir kayıt olmasa da hücre içine girip çıkmak ( F2 + Enter ) vb. dahil değişiklik kabul edilir. Yani özetle Change işlemi hücrenin içinde olan değişiklikleri kapsıyor. WorkSheet Change Prosedürü Nasıl Oluşturulur? ** Öncelikle dikkat edilmesi gereken nokta, yukarıdaki tanımda da bahsettiğimiz gibi WorkSheet Change çalışma...
Foruma eklenen çoğu dosyada gördüğüm bir hususla ilgili, kısa bir makale tadında bir hususu paylaşmak istedim. Sayfaların isimleri ile ilgili olarak gelen kodlarda, Worksheets("SAYFA ADI").Range... şeklinde yazılı. Bu olay biraz riskli ve açıkçası kod yazarken size sistemin yardımcı olmasını engelliyor. Öncelikle risk konusu şu: Sayfa adını değiştirdiğinizde artık kod çalışmayıp hata verecektir. Yardımcı olmama noktası ise; Worksheets("SAYFA ADI") dedikten sonra (.) noktaya bastığınızda o sayfanın özellikleri karşınıza çıkmıyor. Bu nedenle kodlarınızı yazarken Worksheets("SAYFA ADI")... olarak değil, Sayfa1 & Sheet1 şeklinde yazarsanız (Sayfanın gerçek ismi) kullanım açısından daha yararlı olacaktır. Konuyu biraz resimlerle...
MsgBox, Excel makroları yazdığımızda yapılan bazı işlemlerin sonuçlarına dair bilgilendirme için kullanabileceğiniz bir iletişim kutusudur. Örnek olarka, çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin: 1. Basit bir mesaj. MsgBox "Bu bir test mesajıdır" Sayfadaki komut düğmesine tıkladığınızda sonuç: 2. Biraz daha gelişmiş bir mesaj verelim. Önce A1 hücresine bir sayı yazın. MsgBox "A1 hücresinde " & Range("A1") & " yazmaktadır." Sayfadaki komut düğmesine tıkladığınızda sonuç: Not: İki metni birleştirmek için & operatörünü kullandık. Aradaki Range("A1") komutu ise hücrede yazılı olan değerin ne olduğunu bildirmektedir. 3. Mesajda yeni bir satır başlatmak için, vbNewLine ya da vbCrlf...
Excel'de çalışma kitaplarını, sayfalarını koruyabileceğiniz gibi, yazmış olduğunuz bir makronun görüntülenmesini (ve yürütülmesini) istemiyorsanız buun içinde şifre oluşturabilirsiniz. Çalışma sayfanıza bir komut düğmesi (CommandButton) yerleştirin ve aşağıdaki kod satırlarını ekleyin: 1. İlk olarak, korumak istediğiniz basit bir makro oluşturun. Range("A1").Value = "Gizli Kod Örneği" 2.Daha sonra, Tools, VBAProject Properties'i tıklayın. 3. Protection sekmesinde, "Look project for viewing"i işaretleyin ve ikikutucuğa da aynı şifreleri girin. 4. Ok'a tıklayın. 5. Excel dosyasını kaydedin, kapatın ve yeniden açın. Kodu görüntülemeye çalışın. Aşağıdaki iletişim kutusu görünecektir: Yazdığınızkodu, sayfaya eklediğiniz komut...
Excel'de makro güvenlik ayarlarını yapmak için aşağıdaki adımları uygulayın. 1. Geliştirici sekmesinde, Makro Güvenliği'ni tıklatın. 2. Burada dört seçeneğiniz var. İlk seçenek tüm makroları devre dışı bırakır. İkinci seçenek her zaman bir makroyu etkinleştirmenizi ister. Üçüncü seçenek, yalnızca dijital imzalı makrolara izin verecek ve başkalarını etkinleştirmenizi isteyecektir. Dördüncü seçenek tüm makroları etkinleştirir. İnternetten çok sayıda Excel dosyası indiriyorsanız, önerimiz ikinci güvenlik seviyesini kullanmanızdır. Bu güvenlik seviyesi, Excel dosyasının sahibine güvenmiyorsanız her zaman makroyu devre dışı bırakmanızı sağlar. Eğer sadece kendi makrolarınızı yazıyorsanız, dördüncü güvenlik seviyesini kullanın. Bu...
Bu yazımızda, Excel VBA'daki A1, R1C1 ve R[1] C[1] kullanımları arasındaki farkları anlatacağız. 1. Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırını ekleyin (A1 stili): Range("A1").Formula = "=B1*10" Sonuç : 2. Aşağıdaki kod satırını ekleyin (R1C1 stili): Range("A1").FormulaR1C1 = "=R1C2*10" Sonuç: Açıklama: Bu kod satırı, ilk adımda kullanılan kod satırıyla aynı sonucu verir. Farkı, ilk.adımdaki formülü alt hücreye kopyaladığınızda; =B2*10 olacaktır ama bu adımı kopyaladığınızda yine =$B$1*10 şeklinde kalacaktır. 4. Makro Kaydedici Formula R1C1 özelliğini kullanarak kayıt yapar. (R[1] C[1] stili). Makro Kaydedici açıkken, A1 hücresine = B1*10 formülünü girerseniz, aşağıdaki kod satırlarının...
Excel makroları, varsayılan olarak mutlak modda kayıt yapar. Bazı durumlarda, makroları göreceli modda kaydetmek yararlıdır. Bu yazımızda sizlere bunu nasıl yapacağını anlatacağız. Eğer makro kaydetmenin nasıl yapılacağını bilmiyorsanız, öncelikle "Makro Kaydetme" isimli yazımızı okumanızı öneririz. Mutlak Modda Kayıt Bir makroyu mutlak modda kaydetmek için, aşağıdaki adımları uygulayın. 1. Önce, Makro Kaydet'e tıklayın. 2. Ardından, C3 hücresini seçin. Üretim yazın ve enter tuşuna basın. 3. Satış yazın ve enter tuşuna basın. 4. Pazarlama yazın ve enter tuşuna basın. Sonuç: 5. Kaydı Durdur'a tıklayın. 6. C3:C5 aralığını temizleyin. 7. Sayfadaki herhangi bir hücreyi seçin ve az önce kaydettiğiniz makroyu yeniden çalıştırın...
"Makro Kaydet" özelliği Excel VBA'da bulunan çok kullanışlı bir araçtır, Excel ile gerçekleştirdiğiniz her görevi kaydeder, (aynı bir ses kaydedici gibi düşünebilirsiniz). Bu özelliği kullanarak, bir kez kayıt yaparsanız, sonrasında tekrar aynı işlemleri yapmanıza gerek kalmaz. Ardından, bir düğmeye tıklama ile yaptığınız işlemlerin tekrarlanmasını sağlarsınız. Excel VBA'da makro yazmayı bilmeyenler için harika bir yardımcıdır. Yapmak istediğiniz işlemi makro kaydediciyi kullanarak gerçekleştirin, kaydı durdurun ve kodların nasıl oluştuğunu Visual Basic Editör'ünü açarak inceleyin. İnanılmaz birşey! Lakin, bu harika özellik ile herşeyi yapma şansınız da yoktur. Örneğin, bir döngü dizisi oluşturamazsınız. Ayrıca, makro kaydedici...
Hazırladığınız bir makro'da, kullanıcıların bir değer girerek işlem yapmasını sağlamak istiyorsanız. InputBox fonksiyonunu kullanabilirsiniz. Şimdi çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kodları yapıştırın: 1. Önce, "Değer" isminde türü Variant olan bir değişken tanımlayalım. Dim Değer As Variant Not: Kullanıcının ne yazacağından emin değilsek (metin veya sayı) bunun için Variant türünde değişkenler tanımlamalıyız. 2. InputBox kutusunu göstermek için aşağıdaki kod satırını ekleyin. Değer = InputBox("Herhangi bir değer yazın") 3. Değer olarak tanımladığımız değişkeni, A1 hücresine yazdıralım. Range("A1").Value = Değer Kullanıcı kutucuğa 5 yazarsa, ortaya çıkacak sonuç şu şekilde olacaktır: 4. InputBox...
Sadece bir mesaj kutusu kullanıldığında, ekrana çıkan mesajı "Tamam" deyip geçmekten başka bir şansınız olmaz. Ama bazı durumlarda mesaj kutusunun size seçenek sunmasını isteyebilirsiniz. Örneğin, aşağıdaki resimde göreceğiniz gibi sayfamızda rastgele yerlerde yazılı olan verileri tek bir tuşa basarak temizlemek isteyelim. Ama bunu yapmadan önce mesaj kutusunun mesela "Emin misiniz?" türünde bir soru sormasını isteyelim. Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin: 1. İlk olarak, "Cevap" şeklinde türü Integer (Tamsayı) olacak bir değişken tanımlayalım. Dim Cevap As Integer 2. Tanımladığımız "Cevap" isimli değişken için kullanıcıdan gelecek yanıtın ne olacağını belirlemek için bir MsgBox...
Bu yazımızda, araç çubuklarına yeni bir düğme tanımlayarak, bu düğmeye yazdığınız bir makroyu nasıl atayabilirsinizi anlatacağız. Sıkça ve her dosyada kullanacağınız bir makronuz varsa, araç çubuğuna ekleyerek daha hızlı bir şekilde erişmeyi sağlayabilirsiniz. Öncelikle boş bir makroyu kaydediyoruz. 1. Geliştirici sekmesinde, Makro Kaydet'i tıklatın. 2. Makronuza herhangi bir ad verin (ben ExcelDepo adını verdim). Makronun saklanacağı yeri, Kişisel Makro Çalışma Kitabında olarak seçin. Böylece makroyu tüm Excel dosyalarınızda çalışacak şekilde tanımlamış olursunuz. Bu makro, Excel her başlatıldığında otomatik olarak açılan gizli bir çalışma kitabında muhafaza edilir. 3. Kaydı Durdur'a tıklayın. 4. Visual Basic Düzenleyicisi'ni...
Bu makalemiz, Excel VBA makrolarını kullanarak Kopyala/Yapıştır ve Kes/Yapıştır işlemlerinin birkaç farklı yöntemini öğretir. Aşağıya ekleyeceğimiz kod parçalarını kullanmak için, Visual Basic Editor'ı (Alt + F11) açın, Yeni bir modül ekleyin (Ekle -> Modül) Kodlar kopyalayıp modülün sağ kısmındaki beyaz bölüme yapıştırın. TEK BİR HÜCREYİ KES/KOPYALA YAPIŞTIR Aşağıdaki örnek kod, A1 hücresindeki değeri B1 hücresine kopyala, kes işlemini yaparak yapıştırmanız içindir. *** Hidden text: You do not have sufficient rights to view the hidden text. Visit the forum thread! *** SEÇİMİ KOPYALAMA Aşağıdaki kod ile, seçili olan hücreyi kopyalayıp, B1 hücresine yapıştırabilirsiniz. *** Hidden text: You do not have sufficient rights to view...
ADO ve VBA hakkında ne kadar çok bilgiye sahipsek, bunların nimetlerinden de o derece yararlanabiliriz. Vba’da ADO ile başarılı uygulamalar geliştirebilmek için SQL konusunda temelin az üzerinde, Vba konusunda da ortalama üzeri bir bilgi ve beceriye sahibi olmamız gerekiyor. Bu nedenle verilen örneklerde Vba komutları veya SQL komutları açıklanmayacaktır. ADO bağlantı ve kayıtseti nesnelerini açmak için birkaç değişik yöntem kullanabiliriz. Şimdi D:\exceldepo\exceldepodb.mdb yolunda bir Access mdb database dosyamız olduğunu düşünelim. (siz bu yolu istediğiniz gibi ayarlayabilirsiniz) Tablomuzdaki alanlar ve veriler de aşağıdaki resimdeki gibi bir yapıda olsun. VBA ortamında da bir modül ekleyelim ve sayfa başına aşağıdaki...
Bu makalemizde, çalışma kitabı ve sayfalarında kullanılacak 38 hazır kod örneğini ekliyoruz. Makrolara başlangıç seviyesindeki bu kodları inceleyerek, ilerikideki çalışmalarınız için referans alabilirsiniz. Yararlı olması temennisiyle. Sub YeniExcelDosyasıOluştur() Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs ThisWorkbook.Path & "\temp.xlsx" 'bu dosyanızın kayıtlı olduğu klasöre kaydeder End Sub Sub ExcelDosyasınıAç() Dim wb As Workbook Dim fPath As String fPath = "C:\....\dosyam.xlsx" Set wb = Workbooks.Open(Filename:=fPath) wb.Close End Sub Sub DosyayıKapat() Dim wb As Workbook Dim fPath As String fPath = "C:\....\dosyam.xlsx" Set wb = Workbooks.Open(Filename:=fPath) wb.Close True 'otomatik kaydeder wb.Close False...
Excel VBA ile Excel’de tekrar tekrar yaptığınız bazı işlemleri makrolar yazarak ya da kaydederek otomatik hale getirebilirsiniz. Bu yazımızda, bir komut düğmesine tıklandıktan sonra çalışacak basit bir makroyu nasıl oluşturacağınızı öğrenebilirsiniz.. Öncelikle Geliştirici sekmesini açın. Geliştirici Sekmesi Eğer “Geliştirici” sekmesi araç çubuklarınızda görünmüyorsa, “Geliştirici” sekmesini açmak için aşağıdaki adımları uygulayın. 1. Araç çubuklarının olduğu şeritte herhangi bir yere sağ tıklayın ve “Şeritdi Özelleştir” öğesine tıklayın. 2. Şeridi özelleştiririn altında, iletişim kutusunun sağ tarafından, Ana sekmeleri (gerekirse) seçin. 3. Geliştirici yazısının solundaki onay kutusunu işaretleyin. 4. Tamam’a tıklayın. 5...
Çalışma sayfanıza bir komut düğmesi ve bu konut düğmesine aşağıdaki kod satırlarını ekleyin: 1. İlk olarak, Double türünde Gecici olarak adlandırılan bir değişken tanımlıyoruz. Dim temp As Double 2. Gecici adlı değişkene A1 hücresinin değerini atıyoruz. temp = Range(“A1”).Value 3. Şimdi, B1 hücresinin değerini A1 hücresine güvenli bir şekilde yazabiliriz. (Tanımladığımız Gecici değişkeni, A1 hücresinin değerini geçici olarak sakladık, böylece onu kaybetmeyeceğiz). Range(“A1”).Value = Range(“B1”).Value 4. Son olarak, A1 hücresinin (geçici olarak yazılmış) değerini B1 hücresine yazalım. Range(“B1”).Value = temp 5. Komut düğmesine iki kez tıklayın. Sonuç:
Bu makalemizde, Excel VBA kodları ile (makrolar) yinelenen değerlerin nasıl vurgulanacağı anlatılır. Büyük verilerle çalışırken, yinelenen değerler sıkıntı yaratabilir. Excel'in ön yüzünde, Yinelenenleri Kaldır seçeneği kullanılabilir. Ama bazı durumlarda, Yinelenenleri Kaldır yapmadan önce incelemek gerekebilir. Yani, Yinelenenleri Kaldırırsanız, sıkıntı yaşayabilirsiniz. Bu şekilde yaparsanız, kolayca kontrol eder ve gerekirse yine Yinelenenleri Kaldır seçeneği ile tek bir seferde kaldırabilirsiniz. Aşağıdaki 4 ayrı kod ile yinelenen değerleri kolayca vurgulayabilirsiniz. SATIRLARDA YİNELENEN DEĞERLERİ VURGULAMA Aşağıdaki VBA kodu, bir satırdaki tüm hücreleri kontrol eder ve satırdaki aynı hücreleri vurgular.. Yani, bir satırda...
Bu makalemizde, Excel makrolarına dair faydalı kod örneklerine yer verilmiştir. Aşağıya ekleyeceğimiz kod örneklerini kullanarak daha önce hiç VBA kodlarını kullanmamış olsanız dahi, kolayca ne işe yaradığını anlayacaksınız. Tüm örnek kodlara, içeriği anlaşılacak şekilde başlık verilmiştir. Tabi makrolara ilk adımı atıyorsanız, öncesinde kodlarımızı yapıştıracağımız VB penceresinin nasıl açılacağını bilmek gerekir. VB penceresine, Şerit Menü -> Geliştirici sekmesinden ulaşabilirsiniz ya da kısayol olarak Alt ve F11tuşlarını kullanabilirsiniz. Eğer menüde Geliştirici sekmesi yoksa, paniklemeyin ve buraya tıklayın. Artık VB penceresinin nasıl açılacağını öğrendiğinize göre, boş bir Excel sayfası açıkken VB penceresine geçiş yapın ve...
Üst
Konuşma Başlat
Sitemiz ile ilgili tüm soru(n)larınız için hızlı iletişim kurabilirsiniz. Excel sorularınız cevaplanmayacaktır.
Ekip üyelerimizden ilk müsait olan cevap verecektir.