VBA Değişken Tanımlama Biçimleri

Bu yazımızda sizlere VBA Değişken Tanımlama Biçimleri ‘ni anlatıyor olacağız. Değişkenler programcılığın temel öğelerinden biridir. Değişkenleri kullanmak ve yönetmek proje oluştururken olmazsa olmazlarımızdandır diyebiliriz. Olabildiğince sade biçimde sizlere anlatmaya çalışacağım. Hatırlatma: VBA ile ilgili diğer yazılarımızı da yine blog sayfamızda bulabilirsiniz. 👍🏻

 

VBA Değişken Tanımlama Biçimleri Hakkında

Değişkenler genellikle bir veriyi hafızada tutmak ve gerektiğinde bu veriyi kullanmak için vardır.
Değişkenler genelde iki sınıfa ayrılır. Global (Genel) değişkenler ve Local (Yerel) değişkenlerdir.
Global değişkenler programın bütün fonksiyonları tarafından kullanılabilirken, Local değişkenler sadece tanımlandıkları fonksiyonda kullanılır.
Bir prosedür, fonksiyon veya yürütülen bir modülün ömrü boyunca geri çağrılabilir, yeniden atanabilir veya sabitlenebilir.
Bir değişken bildirmek, kullanacağınız değişkenlerin adlarını ve değişkenin içereceği veri türünü belirtmenize olanak tanır.
Örneğin, Sonuç = 10 ise, değişken Sonuç bir Integer Tam sayı olarak bildirilebilir.
Değişken isimlerini genelde kısa ve akılda kalıcı bir biçimde oluştururuz. En çok tercih edilen değişken isimleri; i, a, n, x ,y ,z, s gibi tek karakterlik isimlerdir ki, kodlarda yazımı kolay olsun. Değişken adları kodlar içerisinde kullanırken hatırlayacağınız bir ad olursa, kod yazımı esnasında hata yapma olasılığınız azalır.
Şimdi tanımlama kısmına geçebiliriz.

 

Değişken tanımlama ile ilgili genel yazım kalıpları bu şekildedir.
Dim değişken_adı [(diziboyutu)] As tipi
Public değişken_adı [(diziboyutu)] As tipi
Static değişken_adı [(diziboyutu)] As tipi

 

Bu genel tanımlama ile beraber aşağıda belirtilen tanımlama yöntemleri de tercih edilebilir.

  1. Dim ile tanımlama
  2. Veri Tanımlayıcıları (Kısaltmalar) ile tanımlama
  3. DEF ile tanımlama

 

Dim ile Tanımlama

En çok bilinen ve kullanılan VBA Değişken Tanımlama yoludur.
Yazım kalıbını Syntax yukarıda belirttik. Tekrar birkaç örnekle netleştirelim.
Diyelim ki, A sütunundaki satırlarda (hücrelerde) kullanmak üzere satır adında bir değişken tanımlaması yapacağız, satır numaraları tam sayı oldukları için Veri Türleri makalemizde belirttiğimiz tam sayı veri tiplerinden birini kullanabiliriz. Kontrol ettireceğimiz satır sayısına veya hücrede olabilecek maksimum sayıya göre değişken veri tipini kullanmak daha uygun olacaktır. Sayısal ve Tam Sayı olarak kullanabileceğimiz, temelde uygun 3 değişken veri tipimiz var, ByteInteger ve Long. Eğer satır değişkenine atayacağımız sayısal veri 255 ve daha az ise, o zaman hafızada daha az yer kaplayan Byte değişken veri tipini kullanabiliriz. Eğer satır değişkenine atayacağımız sayısal veri -32767 ile +32768 arasında ise, o zaman da Integer değişken veri tipini kullanabiliriz. Daha büyük bir Tam Sayı olabilir ise, o zaman da Long değişken veri tipini kullanmalıyız. Eğer değişkeninin alabileceği maksimum sayıdan daha büyük bir sayı gönderilirse Overflow (Taşma) hatası alınır. Eğer Sayısal olarak belirtilen bir değişkene Metinsel bir ifade gönderilirse, o zaman da Type Mismatch (Tür Uyuşmazlığı) hatası alınız.

 

Dim ile Değişken tanımlamaya birkaç örnek verelim;

Sub PEAKUP()
    Dim satir As Long
    Dim sutun As Byte
    Dim metin As String
    Dim baslangic As Date
    Dim para As Currency
    Dim nesne As Object
    satir = 15
    sutun = 5
    metin = "Excel Turkey Forum"
    baslangic = "24.06.2018"
    para = 300
    Set nesne = ActiveSheet
End Sub

Bu şekilde her bir değişkeni ayrı ayrı satırlarda yazabildiğimiz gibi, istersek tek bir satırda da bu şekilde yan yana yazabiliyoruz.
Sadece en başta Dim olması gerekiyor ve her bir değişken arasına virgül koyarak devam ediyoruz.

Sub PEAKUP()
    Dim satir As Long, sutun As Byte, metin As String
    Dim baslangic As Date, para As Currency, nesne As Object
End Sub

Burada şuna dikkat etmek gerekiyor. Bazı kullanıcılar şurada yanılgıya düşüp yanlış bir tanımlama yapabiliyorlar.
Yukarıda yazdığım kodu eğer bu aşağıdaki gibi yazmaya kalkarsanız, yani Dim ile başlayıp ilk değişkeni tanımladım diyerek, devam eden yandaki değişkenleri de uygun değişken veri tipleri ile tanımlamış olmazsınız.. “sutun”, “metin” tanımlamalarında veri tipleri belirtilmediği için, Byte ve String değil, tanımsız veri tipi olan Variant olarak belirtilmiş olur. Dim ile tanımladığım ilk değişkende veri tipi belirttiğiniz için, devamında gelen diğer değişkenleri de tanımlamış olmuyorsunuz, her bir değişenin ayrı ayrı tipini de belirtmelisiniz.

 

Veri Tanımlayıcıları (Kısaltamalar) ile tanımlama

Abbreviations (Kısaltmalar)

Tür Bildirim son ekleri olarak da bilinir.
Bu çok fazla kullanılmaz ama kodlarda tasarruf sağlar.
VBA’ya değişken adının sonuna özel bir karakter ekleyerek bir değişken türünü söylemek de mümkündür.

Dim sayi% 'Integer
Dim uzunsayi& 'Long
Dim toplam! 'Single
Dim alttoplam# 'Double
Dim odeme@ 'Currency
Dim adi$ 'String
Dim enuzunsayi^ ' 64 bit'te LongLong

 

Veri Türü Kısaltması İfade Karakterleri

VBA

, veri türünü belirtmenin hızlı bir yolu olarak, bir değişkenin adına bir karakter eklemenize izin verir.
Değişkenleri bildirmek için bu yöntem kullanılmamalıdır ve yalnızca geriye dönük uyumluluk amacıyla kullanılabilir.
Aşağıdaki satır bir Double veri türü ile bir değişken bildirecektir.

Dim dDouble#

Ancak bu satır “As” anahtar sözcüğünü kullanarak bildirilmesi daha doğru olur.
Dim dDouble As Double

 

Veri Türü Kısaltmalar / Son Ekler

Eğer kısaltmaları kullanırsanız, o zaman türü bildirmek zorunda değilsiniz.
% ifadesini kullanırsanız, “As Integer” yazmanız gerekmez.
Bu kısaltmalar, Variant‘lara hazır bilgi atamak için yararlı olabilir.

Örnek; sayim = 10#

 

DEF ile Tanımlama

Değişkenlerimizi belirttiğimiz gibi birkaç farklı yöntemle tanımlayıp bildirebiliyorduk, bu yöntemlerden biri de DEF ile tanımlama.
Bu tanımlama genellikle kod penceresinin en üstünde prosedürden bağımsız olarak yapılır.
Değişken olarak kullandığımız isim ve veri tipini aşağıdaki gibi kısaltarak tanımlamasını yapabiliyoruz.
Def+Tür ‘den sonra gelen harf ile başlayan değişkenlerin o türde olduğunu ifade eder.

def ile değişken tanımlama tablosu

Def ile tanımlamaya Dim ile arasındaki farkı gösteren bir örnek verelim..

Öncelikle Dim ile değişkenlerimizi bu şekilde tanımlayalım.

Sub PEAKUP()
    Dim satir As Integer, sutun As Integer
    Dim metin As String, harf As String, kelime As String
    Dim tarih As Date, baslangic As Date
    Dim rakam As Double, fiyat As Double
    satir = 10
    sütun = 5
    metin = "PEAKUP"
    harf = "E"
    kelime = "Kitap"
    tarih = "24.06.2018"
    baslangic = "14.12.1980"
    rakam = 1453.48
    fiyat = 5647.15
End Sub

Şimdi bu tanımlamayı bir de Def ile yapalım.

DefInt S
DefStr H, K, M
DefDate B, T
DefDbl F, R
Sub PEAKUP()
    satir = 10
    sütun = 5
    metin = "PEAKUP"
    harf = "E"
    kelime = "Kitap"
    tarih = "24.06.2018"
    baslangic = "14.12.1980"
    rakam = 1453.48
    fiyat = 5647.15
End Sub

Gördüğünüz gibi sadece baş harflerini kullanarak türünü belirtip değişken tanılaması yapmış olduk.
Bu noktada değişken tanımlamaları fazla yer kaplamasın ve daha az satırda görünsün isterseniz, Aşağıda belirtildiği gibi Def satırlarını iki nokta üst üste ( : ) ile tek satırda yan yana yazabilirsiniz.

DefInt S: DefStr H, K, M: DefDate B, T: DefDbl F, R
Sub PEAKUP()
    satir = 10
    sütun = 5
    metin = "PEAKUP"
    harf = "E"
    kelime = "Kitap"
    tarih = "24.06.2018"
    baslangic = "14.12.1980"
    rakam = 1453.48
    fiyat = 5647.15
End Sub

Bu arada tüm değişken isimlerini, değerlerini ve türlerini Locals Window‘dan kolaylıkla takip edebilir ve değerlendirebilirsiniz.

def ile değişken tanılamayı locals windowda görüntüleme

 

Daha fazla detay için Microsoft Docs sayfasına bakabilirsiniz.

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

LET / İZİNVER ; EN YENİ FONKSİYON

[vc_row][vc_column][vc_column_text]Henüz bu hafta Microsoft tarafında duyurulan ve şu an için yalnızca Office Insider üyelerinin kullanabildiği bir fonksiyon olan LET / İZİNVER fonksiyonundan bahsedeceğim. Şimdilik fonksiyon ismi Türkçe olarak  İZİN veya İZİNVER şeklinde belirtilmiş, yaptığı işe göre bu pek anlamlı görünmüyor.. ileride değişebilir. Sizlere FİLTRE fonksiyonu yazımda da bahsettiğim üzere, yeni dinamik dizi fonksiyonlarının hayatımıza girmesiyle artık birçok işi çok daha basit ve hızlı bir biçimde gerçekleştirmiş olacağız. Yenilikler de ardı ardına geliyor. Yazılarımızı takip ederek güncel bilgiye hızlıca erişebilirsiniz. 👍🏻

 

LET FONKSİYONUN TANIMI

Öncelikle yapılan duyuruda fonksiyonla ilgili şöyle bir tanımlama yapılıyor;

Hiç aynı ifadeyi bir formül içinde birden çok kez tekrarlamanız, bir mega formül yaratmanız ya da daha kolay tüketim için formülünüzün bazı bölümlerini yeniden kullanmanın bir yolunun olmasını dilediniz mi? LET / İZİNVER işlevinin eklenmesiyle, artık yapabilirsiniz!

LET

, formülünüzdeki bir hesaplamayı veya değeri bir adla ilişkilendirmenize olanak tanır ve formüldeki bölümleri yeniden kullanmayı kolaylaştırır. Bir nev-i; Ad Tanımlamayı fonksiyon içerisinde yapıp o ismi de hesaplama da kullanabiliyoruz anlamına gelir. Bazen bir formül yazarken aynı aralığı veya şartı tekrar belirtmemiz gerekiyor. İşte orada LET fonksiyonu bize yardımcı olacak. Bir formül içerisinde birden fazla kez kullanmak zorunda olduğumuz değere bir isim vereceğiz ve artık o isimle fonksiyon içinde belirtmiş olacağız.

 

Başlıca faydaları:

1. Okunabilirlik

Artık belirli bir aralık / hücre referansının neyi ifade ettiğini, hesaplamanızın ne yaptığını veya bir formül içindeki aynı ifadeyi çoğalttığını hatırlamak zorunda değilsiniz. İfadeleri adlandırma yeteneğiyle, formülünüzün okuyucularına anlamlı bir bağlam verebilirsiniz.

2. Performans

Aynı ifadeyi bir formülde birden çok kez kullanırsanız, Excel bu ifadeyi birden çok kez hesaplar. LET, ifadeyi adlandırmanıza ve bu adı kullanarak ifadeye başvurmanıza olanak tanır. Adlandırılmış herhangi bir ifade, formülde birçok kez bahsedilse bile yalnızca bir kez hesaplanır. Bu, hesaplama açısından karmaşık ifadeler için performansı önemli ölçüde artırabilir.

 

YAZIM KALIBI

let/izinver yazım kalıbı
LET

(name1, value1, [name2…], [value2…], calculation)

let fonksiyonu

Bu fonksiyon temelde 3 argümandan oluşuyor. İsteğe bağlı olarak name ve value argümanları artırılabilir..

Temeldeki 3 argüman da gereklidir. Fonksiyonun çalışması için bir isim, belirtilen değer ve hesaplama argümanları olmak zorundadır.

Bu argümanları bir tanıyalım..

let / izinver fonksiyonu argüman listesi

 

Parametrelerin yapılandırılması, not edilmesi gereken iki nokta vardır;

  1. İsimler ve değerleri çiftler hâlde olmalıdır. Yani bir isim olup da bir değer olmazsa fonksiyon çalışmaz.
  2. Fonksiyonun son parametresi, adlandırdığınız değerleri kullanabilen hesaplamadır. Düzgün yapılandırılmış bir LET fonksiyonunun tek sayıda argümanı olacaktır.

 

İLAVE NOTLAR

  • Son bağımsız değişken sonuç döndüren bir hesaplama olmalıdır .
  • Değişken adları, Ad Yöneticisi’nde kullanılabilen geçerli adlarla sınırlıdır. Örneğin, “a” ismi geçerli ancak “c”, R1C1 stili başvurularıyla çakıştığı için geçerli bir isim olmayacaktır.

 

Fonksiyona verilen şu örnek, size olayı anlatacaktır ;

=LET(total; SUM(A1:A10); total * 3)

Yazılım tarafının da net olarak anlayabilmesi için basit bir örnek daha vereyim;  aşağıdaki formülde, topla isimli bir değişken oluşturdum ve ona 1 değerini verdim, hesaplama kısmında da topla değişkenine +2 ilave et dedim ve sonuç olarak bu fonksiyon geriye 3 sonucunu döndürecektir.

=LET(topla; 1; topla+2)

Bunu bir adım daha ileri götürmek istersek, yani ikişer isim ve değer belirtmek istersek şöyle kullanabiliriz.

=LET(total, SUM(A1:A10), count, COUNT(A1:A10), total / count)

Bu fonksiyon için verilen bir örnek de şu;

izinver fonksiyon örneği

Burada yeni çıkan FILTER dinamik dizisi ile soldaki tablonun ilk sütunda Fred olanlar filtrelenip boş olan bir hüre varsa da oraya – (tire) işareti yazılması isteniyor.

Standartta biz bunu şöyle bir formülle çözebiliyoruz; eğer filtreden gelen sonuçta boş bir hücre varsa oraya tire işaretini yaz, yoksa normal filtreleme işlemini yap.

=IF(ISBLANK(FILTER(A2:D8;A2:A8="Fred"));"-";FILTER(A2:D8;A2:A8="Fred"))

Fakat dikkat ederseniz, formülde şu kısmı iki kez yazdık; FILTER(A2:D8;A2:A8=”Fred”)

LET Fonksiyonu da işte bu şekilde aynı veriyi iki kez yazmanıza gerek yok diyor.

=LET(kriter;"Fred";aralık;FILTER(A2:D8;A2:A8=kriter);IF(ISBLANK(aralık);"-";aralık))

 

Bu güzel fonksiyonu bir örnek daha verip yazımı sonlandırayım; 😊

izinver fonksiyonu

Yukarıdaki tabloda D2 ve D3‘te belirtilen koşullara göre Şubat ayının toplam verisini bulmak istediğimizde yazmamız gereken formülümüz şu oluyordu;

=EĞER(ÇOKETOPLA($C$2:$C$8;$A$2:$A$8;$D$2;$B$2:$B$8;">="&$D$3)<0;"Toplam Hatalı";ÇOKETOPLA($C$2:$C$8;$A$2:$A$8;$D$2;$B$2:$B$8;">="&$D$3))

Gördüğünüz gibi bir EĞER içinde iki kez ÇOKETOPLA kullandık, ihtiyacımıza göre bu şekilde yazmak zorundaydık.

Oysa LET fonksiyonu ile yapacak olursak ÇOKETOPLA fonksiyonunu bir kez yazmamız yeterli olacaktı.

=LET(Toplam;ÇOKETOPLA($C$2:$C$8;$A$2:$A$8;$D$2;$B$2:$B$8;">="&$D$3);EĞER(Toplam<0;"Hatalı";Toplam))

Şu an için bu fonksiyonla ilgili aktaracağım bilgiler bu şekilde, dilerseniz daha detaylı bilgiye buradan erişebilirsiniz.. Günlük hayatta kullanmaya başladıkça sizlerle de paylaşıyor olacağız. ⚡️

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️

Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Sıralı Fonksiyonu – SEQUENCE

[vc_row][vc_column][vc_column_text]Bu yazımızda yeni dinamik dizi fonksiyonlarından SIRALI Fonksiyonu ‘ndan bahsedeceğim.
Bazen sütunda bir sıra numarası vermek istediğimizde veya belirttiğimiz satır ve sütun aralığında bir başlangıç sayısı verip, artış değerini de belirttiğimizde o hücre aralığında sıralı sayı dizisi oluşturabileceğimiz bir fonksiyondur. Hızlı bir veri kümesi oluşturmanız gerektiği durumlarda da kolayca kullanabiliriz. Diğer fonksiyonlarla ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz.

 

NE İŞE YARAR

SIRALI

Fonksiyonu ; yukarıda da biraz bahsettiğim gibi, Excel’deki mevcut Doldur kısmında yer alan Seri Doldur seçeneği ile benzer özelliklere sahip bir fonksiyondur. Örneğin; 1’den 20’ye kadar bir sıra numarası vermek istediğimizde =SIRALI(20) dememiz yeterli olacaktır. Ya da 10 satır ve 5 sütunlu sayısal bir veri tablosu oluşturacaksınız diyelim, bu sayılar da belli bir sayıdan başlasın ve belirttiğimiz artış değerinde üzerine eklenerek diziyi doldursun istediğimizde kullanabiliriz. Bu fonksiyon bize geri döndürdüğü sayısal verilerle ekstra özel işlemler de yapabiliriz. Son bölümde bununla ilgili bir örnek veriyor olacağım.

 

YAZIM KALIBI

sıralı fonksiyon argümanları

Fonksiyonda 4  argüman bulunuyor.
Bu 4 argümandan 1. si gerekli, diğer 3 argüman da opsiyonel/isteğe bağlıdır.

Şimdi bu argümanların anlamlarına, yani fonksiyonun bizden ne isteğine ve bizim ona ne vereceğimize bakalım.

sıralı fonksiyon argümanları listesi

 

ÇALIŞMA KOŞULLARI

  • Tüm eksik isteğe bağlı bağımsız değişkenler için varsayılan olarak 1 kullanılır.
  • Diziler, bir değer sırası, bir değer sütunu ya da değer sırası ve sütunlarının bir kombinasyonu olarak düşünülebilir.
  • SIRALI işlevi bir dizi getirir; dizi bir formülün nihai sonucuysa yan hücrelere geçer. Yani, ENTER tuşuna bastığınızda, Excel uygun boyutta bir dizi aralığını dinamik olarak oluşturur. Destek verileriniz bir Excel tablosundaysayapılandırılmış başvurular kullanıyorsanız dizi aralığınıza veri eklediğinizde veya dizi aralığınızdan veri çıkardığınızda dizi otomatik olarak yeniden boyutlandırılır. Daha fazla bilgi için geçmiş dizi davranışı ile ilgili makaleyi inceleyin.
  • Excel, çalışma kitapları arasındaki dinamik dizilere yönelik olarak sınırlı destek sunar ve bu senaryo yalnızca her iki çalışma kitabının da açık olması durumunda desteklenir. Kaynak çalışma kitabını kapatırsanız bağlantılı tüm dinamik dizi formülleri yenilendiğinde #BAŞV! hatası döndürür.

 

FONKSİYON KULLANIMI

Dilerseniz bir sütunda sıra numarası vermeyi deneyebilirsiniz. Belirtilen satır ve sütun sayısınca 1’den başlayıp Sıralı bir sayı dizisi elde edebiliriz, dilersek artış değerini kullanarak step step artmasını sağlayabilirsiniz. Şimdi fonksiyonun nasıl kullanıldığını görelim.

sıralı fonksiyonu kullanımı

 

VERİLERİ SÜTUNLARA KOLAYCA BÖLÜN

Şimdi de yukarıda bahsettiğimiz ekstra özel işlemlerde kullanımına bir örnek verelim..
A sütununda onlarca, yüzlerce, binlerce satır veri olduğunu varsayalım, bu verileri de birkaç sütuna bölmek istiyorsunuz, işte o zaman bu fonksiyonun kullanım mantığı ile geri döndürdüğü sayılardan faydalanarak listeyi kolayca oluşturabiliriz. Aşağıdaki örnekte, A sütununda 16 satır veri var, biz bu verileri, birer satır ara ile A ve B sütunlarına eşit miktarda yazdıralım.

 

sıralı function farklı kullanımı

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

coder by[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

IF KARAR YAPISI İLE ŞARTA GÖRE İŞLEMLER

Bu yazımızda sizlere; makro tarafında olmazsa olmaz bir karar/koşul yapısından bahsediyor olacağım. Yazının sonunda IF Karar yapısı nedir, ne zaman ve nasıl kullanılırı öğrenmiş olacağız.

 

IF KARAR YAPISI NEDİR?

Bu

koşul yapısı; bütün programlama dillerinde olan, bazı şartların gerçekleşmesi veya gerçekleşmemesi durumunda ayrı-ayrı kod bloklarının çalıştırılmasına imkân veren yapıdır.

Belirtilen koşuldan geri dönen True/False Boolean değerine göre işlemler yapabilmenizi sağlar.
Eğer koşulun True Doğru olduğu söylenirse, belirtilen koşul(lar)ın altında bulunan ifadeler uygulanır.
Koşulun False Yanlış olduğu söylenirse, IF yapısından sonra belirtilen ifadeler uygulanır. İlaveten, duruma göre Else veya ElseIF ifadelerini belirttiysek o satırların da kontrolünü sağlar ve ne zaman sonuç True dönerse orada belirtilen komutlar uygulanır.

 

NE ZAMAN KULLANILIR? 

Kod yazarken, Eğer ile başlayan bir düşüncemiz/şartımız varsa ve bir veya birden fazla şarta göre işlemler yaptırmak istiyorsak genellikle bu yapıyı kullanırız. Bu yapıdan başka birkaç Karar/Koşul yapısı daha mevcuttur, bunlar; Select Case, IIF, Choose ve Switch yapılarıdır. Bu yapılara da hâkim olmak kod yazarken sizi rahatlatacaktır.

 

NASIL KULLANILIR?

Öncelikle yazım kalıbı veya söz dizimi dediğimiz durumu, yani bu IF yapısını VBA tarafında nasıl yazabiliriz ona bir bakalım.

 

YAZIM KALIBI

Yazım kalıbı Syntax aşağıdaki gibidir..
Mavi renkli kısımlar sabittir.
Kırmızı renkli kısımlar değişkendir.

If koşul(lar) Then
‘Kodlarınız
End If

Mantık olarak kabaca şöyle düşünebilirsiniz; “Eğer bu sayı 10’dan büyükse bunları yap.” gibi..

Eğer tek bir koşulumuz şartımız varsa, yukarıdaki kalıbı bu şekilde de kullanabilirsiniz.
If koşul(lar) Then ‘Kodlarınız
Tek şart varsa, End If ifadesini kaldırıp, koşulu Then ifadesinin yanına yazabilirsiniz.
If ve Then arasındaki koşulumuz da, duruma göre birden fazla olabilir.
Yani örneğin; A sütunundaki hücrelerdeki sayılar 10‘dan büyükse ve boş değilse gibi, And, Or, Xor vb. Mantıksal operatörleri de kullanabilirsiniz.

Şimdi bu kısmı tam olarak anlamanız için ufak bir kod örneği verelim..

If sayi > 10 And sayi < 20 Then

Tek bir If .. Then kalıbı arasında mantıksal operatörler kullanarak, koşulumuzu kendi içinde 2-3-4…’e çıkarabilirsiniz. Diyelim ki; A2:A10 hücre aralığında bazı sayılarımız var ve bu sayılardan 10‘dan büyük olanların B sütununa büyük ifadesini yazdıralım.

Bunun için bize gerekli olan kodlar bu şekildedir;

Sub IF_Kosul_Yapisi()
    For i = 2 To 10
        If Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodların nasıl çalıştığını gif resimde görerek daha iyi anlayabilirsiniz.

IF yapısı

 

BİRDEN FAZLA KOŞUL VE ELSE

Eğer birden fazla koşulumuz var ise ve mantık olarak, Eğer böyleyse bunu yap, değilse şunu yap gibi, iki farklı duruma göre işlem yapmak istiyorsanız, bunu da yine tek bir satırda bu şekilde yazabileceğiniz gibi;

If Cells(i, "A") > 10 Then Cells(i, "B") = "Büyük" Else Cells(i, "B") = "Küçük"

alt alta Else ifadesiyle birlikte de yazabilirsiniz. O zaman kalıbımız bu şekilde olacaktır.
If koşul(lar) Then
‘Doğruysa Kodlarınız
Else
‘Yanlışsa Kodlarınız
End If

Örnek kodlarımız..

If Cells(i, "A") > 10 Then
    Cells(i, "B") = "Büyük"
        Else
    Cells(i, "B") = "Küçük"
End If

Yukarıdaki kod, 10‘dan büyük olan hücrelerin sütununa Büyük, küçük olanların da sütununa Küçük yazar.

 

ELSEIF

Şimdi de ElseIf DeğilseEğer ifadesini dahil ederek koşullarımızı artıralım.
Bu kalıpta da mantığı kabaca şöyle düşünebilirsiniz; “Eğer bu böyleyse bunu yap, değilse eğer şöyleyse şunu yap, değilse eğer öyleyse onu yap.” gibi..

Yazım Kalıbı bu şekildedir..
If koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
End If

Sonuc sütununa sonuçlarımızı bu şartlara göre yazdıralım.

  • Eğer sayı sıfıra eşitse Sıfır yazsın.
  • Eğer sayı 10’a eşitse Eşit yazsın.
  • Eğer sayı 10’dan küçükse Küçük yazsın.
  • Eğer sayı 10’dan büyükse Büyük yazsın.

Belirttiğimiz bu şartlarımıza göre, bize gereken kodlar bu şekilde olacaktır..

Sub Eger_Kosul_Yapısı_2()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        ElseIf Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodları da gif resim üzerinde nasıl çalıştığını görerek daha net anlayabilirsiniz.

 

ELSEIF ve ELSE BİRLİKTE

Son olarak kodlarımıza, eğer yukarıda belirttiğimiz şartların hiçbirine uymuyorsa, o zaman End If satırından önce Else değilse ifadesi dahil edilerek, bu şekilde hücreye başka bir sonuç da yazdırılabilir.

Sub Eger_Kosul_Yapısı_3()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        Else
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

 

Daha fazla detay için Visual Basic’te Koşul Yapılarını buradan inceleyebilirsiniz.

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Office Insider’da Mart Ayında Neler Oldu?

YENİLİK/DÜZELTME

 

Aylık tüm Office insider  yenilik ve düzeltmeleri (güncellemeleri) bloğumuzda bulabilir ve takip edebilirsiniz. 👍🏻 Office insider devamlı olarak güncellemeler ve yenilikler ekliyor, bu yeniliklerin takip edilmesi ve mümkünse uygulanabilmesi bilginizi artırmanız açısından önemli. Haydi şimdi Mart ayında Office insider ‘da ne gibi yenilikler olmuş onlara bir göz atalım.

 

28 Mart 2020

outlook iconOutlook

Outlook Takvim’i yenilendi

Geçen yıl başarıyla posta deneyimin yenilenmesinden sonra, makyaj sırası takvime geldi. Geri bildirimleriniz sayesinde, sizin gibi deneyimli Outlook kullanıcıları hemen daha üretken olabilsin diye, yeni ama tanıdık gelecek güncelleştirmeler yapıldı.

Güncelleştirmelerden bazılarına göz atmak için aşağıdaki ekran görüntüsünü gözden geçirin: kalın üstbilgiler, takvim renkli ana hatlar, yeni bir saat göstergesi çubuğu ve rozetler.

Daha fazla bilgi edinin.

Takvimde çalışma haftasının resmi.

Önemli düzeltmeler 

  • Yanlış URL’lere sahip bağlantılı resimleri işlerken, kullanıcıların gecikmeler yaşadıkları bir sorun düzeltildi.
  • Taslak e-postalarda yapılan son değişikliklerin güncellenmemesiyle ilgili bir sorun düzeltildi.
  • Bir dosyaya sağ tıklayıp Gönder’in seçilememesiyle ilgili sorun düzeltildi.
  • Kullanıcının, Adres defteri için özelleştirilmiş bir arama yolu olması durumunda, Outlook’un ad çözümleme kapsamının Genel Adres Listesi’ni içermek yerine, özelleştirilmiş arama yoluyla sınırlı kalması sorunu düzeltildi.
  • Geri dönen bir dizi arama sonucu içinde, sonuçların Kategorilere göre sıralanması işleminin kategori renklerini göstermemesi sorunu düzeltildi.

 

PowerPoint iconPowerPoint

Sunum yaparken değişiklikleri eşitleme  

Yıllardır PowerPoint, sunucunun içerik üzerinde tam denetime sahip olduğundan emin olmak için, sürmekte olan bir sunu varken slaytlara hiçbir değişikliğin kaydedilmesine izin vermedi. İşbirliği ve gerçek zamanlı güncelleştirmelere artan odak ile, müşteriler nerede yapılırsa yapılsın, sunu Slayt Gösterisi modundayken bile değişikliklerin kaydedilmesini istedi.

Nasıl erişilir  

Sunu içeriğinizi iki yolla eşitleyebilirsiniz.

Slayt içeriğini otomatik güncelleştirme  

1. Şeritteki Slayt Gösterisi sekmesinde Slaydı Güncel Tut onay kutusunu işaretleyin.

PowerPoint Ayarla sekmesindeki "Slaytları Güncel Tut" kutusunu gösteren ekran görüntüsü.

2. Slayt Gösterisi sekmesindeki uygun düğmeyi seçerek sunuyu başlatın.

PowerPoint Slayt Gösterisini Başlat sekmesinin ekran görüntüsü.

3. Slaytta bir güncelleştirme yapıldığında ve algılandığında, sunulan slayt gösterisinde otomatik olarak güncelleştirilir ve görüntülenir.

Slayt içeriğini elle güncelleştirme  

1. Şeritteki Slayt Gösterisi sekmesinde Slaydı Güncel Tut onay kutusundaki işareti kaldırın.

2. Slayt Gösterisi sekmesindeki uygun düğmeyi seçerek sunuyu başlatın.

3. Slaytta bir güncelleştirme yapıldığında ve algılandığında, Sunucu Görünümü’nün en üstünde Slaytları Güncelleştir düğmesi gösterilir.

Slaytları Güncelleştir işlevselliğini gösteren PowerPoint Görev Çubuğunun ekran görüntüsü.

4. Slayt içeriğini elle eşitlemek için Slaytları Güncelleştir düğmesine tıklayın.

 

word new iconWord

Önemli düzeltmeler 

  • Açıklama gönderme işlevinin devre dışı bırakıldığı bir sorun düzeltildi.
  • Yanlış URL’lere sahip başlantılı resimleri işlerken, kullanıcıların gecikmeler yaşadıkları bir sorun düzeltildi.
  • Hesap yöneticisinin iletileri göndermemesine ve üçüncü taraf uygulamaların donmasına neden olan bir sorun düzeltildi.
  • İçindekiler Tablosu’un, belgede yer almayan başlık stillerine güncelleştirmeler alması sorunu düzeltildi.
  • Word belgelerinde kaydedilen dijital imzaların, belgeleri gönderirken kaldırılmasına neden olan bir sorun düzeltildi.

 

excel new iconExcel

Önemli düzeltmeler 

  • Yanlış URL’lere sahip başlantılı resimleri işlerken, kullanıcıların gecikmeler yaşadıkları bir sorun düzeltildi.

 

msproject new iconProje

Dikkate değer düzeltmeler 

  • Gerçekleştirilen Çalışma Fiili Maliyet en son değerlerinin, tarih değişikliği gibi bir düzenleme yapıldıktan sonra görüntülenmemesi sorunu düzeltildi.
  • En Son Kullanılanlar menüsünü kullanarak bir proje açmanın, proje dosyasını Okuma/Yazma erişimiyle açması sorunu düzeltildi.
  • Elle oluşturulmuş bir görev, başlangıç tarihi ve zamanı olup, süresi olmadan oluşturulduğunda zaman çizelgesinde yanlış bir zamanla gösterilmesi sorunu düzeltildi.
  • Bir zaman çizelgesi Hicri takvim kullanarak yazdırıldığında, yazdırma görünümünde bir ayın atlanması veya yinelenmesine neden olan sorun düzeltildi.
  • Ekip Planlayıcı’da GDI nesneleriyle çalışırken, GDI nesnelerine fazla yer ayrılması ve yetersiz bellek durumlarının oluşması sorunu düzeltildi.
  • Bir kullanıcı görev seçtikten sonra, Zamanlama grubundaki Devre Dışı Bırak düğmesine tıklandığında “ProjectBeforeTaskChange” olayının açılmaması ile ilgili bir sorun düzeltildi.
  • “ProjectBeforeTaskChange” olayının, Form türü görünümünde yapılan değişikliklerini her zaman kaydetmemesi sorunu düzeltildi.

 

13 Mart 2020  

word new iconWord, excel new iconExcel,PowerPoint new iconPowerPoint ve outlook new iconOutlook

Duyarlılık etiketi uygulama 

Artık sizden özel izinler istemek üzere kuruluşunuzun yapılandırdığı duyarlılık etiketini uygulayabilirsiniz. Duyarlılık etiketleri kuruluşunuzun verilerini sınıflandırmanıza ve korumanıza olanak tanırken, üretkenliğinizin ve işbirliği yapma becerinizin engellenmemesini de sağlar.

Nasıl erişilir 

Kuruluşunuz Microsoft Bilgi Koruması’nda Duyarlılık etiketleri ayarladıysa ve kullanıcıların izinler atamasını etkinleştirdiyse, bunlara erişebilirsiniz. Örneğin, Giriş > Koru’yu seçin, sonra da belgeye, çalışma kitabına, sunuya veya e-postaya uygulamak istediğiniz etiketi seçin.

İzinlere nasıl erişileceğini gösteren Word belgesinin resmi.

outlook new iconOutlook

Dikkate değer düzeltmeler

  • Dosya bir ek olarak iliştirildiğinde veya ek sürükleyip bırakma yöntemiyle kaydedildiğinde, dosyanın “son değiştirme” tarihinin güncelleştirilmesine neden olan sorun düzeltildi.
  • Arama başlatmak için kullanıcıların genişletilmiş Bul bölmesinde ENTER tuşuna basmasını engelleyen sorun düzeltildi.
  • Mevcut olduğunda kullanıcı fotoğraflarını göster onay kutusu temizlendiğinde aramanın kullanıcılar hakkında hiç bilgi göstermemesi sorunu düzeltildi.

 

word new iconWord

Önemli düzeltmeler 

  • Açıklama yazdıktan veya düzenledikten sonra Ctrl+A tuşlarına basıldığında açıklama kartındaki metin yerine tuvaldeki metnin seçilmesine yol açabilen sorun düzeltildi.
  • Belge içeriği Hızlı Yazdır kullanılarak yazdırıldıktan sonra içeriğin hizalamasının bozulmasına neden olan sorun düzeltildi.
  • Kullanıların iki belgeyi tek belge halinde birleştirmesini engelleyen sorun düzeltildi.
  • Denklemler içeren ve değişikliklerin izlendiği bir belgenin kaydedilememesi sorunu düzeltildi.

 

excel new iconExcel

Önemli düzeltmeler 

  • Kullanıcılar geniş bir hücre aralığını programlama yoluyla düzenlerken gecikmelere neden olan sorun düzeltildi.
  • Kullanıcılar Japonca ortamlarda CSV dosyalarını açarken gecikmelere neden olan sorun düzeltildi.

 

msproject new iconProje

Önemli düzeltmeler 

  • Özet görev tarihlerinin her zaman düzgün hesaplanmaması sorunu düzeltildi.
  • Önce OpenUndoTransaction yöntemi çalıştırılmadığı sürece OnUndoOrRedo olayının çalıştırılmaması sorunu çözüldü.

 

access new iconAccess

Önemli düzeltmeler 

  • Access’in uluslararası sürümlerinde kullanıcı arabiriminde İngilizce dizelerin gösterilmesi sorunu düzeltildi.

 

PowerPoint

Yeni özellikler 

Yukarıya bakın.

 

 

10 Mart 2020

excel new iconExcel,word new iconWord,PowerPoint veoutlook new iconOutlook’ta mükemmel rengi seçin

Office insider olarak sesinize kulak verdik! Onaltılık renklerin RGB değerlerine dönüştürülmesi artık geçmişte kaldı. Renk belirleyebileceğiniz herhangi bir öğe için, şeritteki doğru düğmeye tıklayın (Yazı Tipi Rengi düğmesi gibi) ve Daha Fazla Renk’e tıklayın. Ardından Renkler iletişim kutusunda Özel sekmesine tıklayın ve Onaltılık kutusuna #0F4C81 veya 444 gibi bir Onaltılık renk değeri girin.

Daha fazla bilgi edinin

Onaltılık bilgiler alanını gösteren renkli kutu.

excel new iconExcel

Yeni veri türlerini otomatik olarak kullanma* 

Olası bir hisse senedine veya coğrafi konuma benzeyen bir veri değeri yazdığınızda, Excel bunu uygun bağlantılı veri türüne (Hisse Senedi veya Coğrafya) dönüştürme seçeneği sunar. Mutlaka deneyin!

  1. Bir sütunda ayrı ayrı hücrelere çeşitli coğrafi konumlar (“İstanbul”, “Londra” veya “Tel Aviv”) ya da hisse senedi bandı simgeleri (“MSFT”, “ADBE” veya “AAPL”) yazın.
  2. Seçilen hücrenin sağında Coğrafyaya Dönüştür veya Hisse Senedine Dönüştür seçeneği görüntülendiğinde buna tıklayın.

Verileri dönüştür kutusunun bulunduğu Excel çalışma kitabı.

* Bu özellik şu anda yalnızca İngilizce sunulur.

outlook new iconOutlook

E-postaları sahibi olduğunuz bir gruba sürükleme 

Grup sahibi olarak, iletileri ve yazışmaları artık kendi posta kutunuzdan grupların posta kutusuna sürükleyip bırakarak taşıyabilir ve kopyalayabilirsiniz. Taşınan içerik tüm grup üyeleri tarafından görülebilir; herkes iletileri okuyabilir ve konuşmaya katılabilir.

Daha fazla bilgi edinin

Daha iyi arama sonuçları, hem de daha hızlı 

Outlook’taki Arama deneyimi iyice geliştirildi! Artık hiç olmadığı kadar güvenli, akıllı ve hızlı. Ayrıca artık tüm arama girdilerinde yazım denetimi yapılıyor ve hata algılanırsa yararlı öneriler sunularak aradığınız sonuçları bulmanız sağlanıyor. Son olarak, en uygun arama sonuçlarına hızla erişebilmeniz için bunlar sonuç listesinin en üstünde gösteriliyor.

Arama öğelerinin vurgulandığı Outlook posta kutusu resmi.

PowerPoint

Diyagramlar bağlayıcı desteği alıyor  

Artık nesneler arasındaki dönüştürülmüş çizgiler, şekillere sabitlenen bağlayıcılar oldu.

Mürekkep dönüştürme işlemi de kolaylaştı. “Mürekkebinizi dönüştürün düğmesine”  Beyaz kutuda mavi şimşek.  tıklamanız yeterli. Dönüştürmenin ihtiyaçlarınıza uyduğundan emin olmak için, dönüştürülen nesneyi yeniden seçerek diğer dönüştürme alternatiflerine erişebilirsiniz. Mutlaka deneyin!  Mutlaka deneyin!

Sağda siyah bağlayıcı dönüştürme kutusuyla boş beyaz kutular.

 

 

6 Mart 2020  

outlook new iconOutlook

Önemli düzeltmeler

  • Başka bir uygulama açık olduğunda, kullanıcıların e-posta iletilerine dosya eklemelerini engelleyen bir hata düzeltildi.
  • Outlook Web Access’te bir kural oluşturulurken Exchange sunucusunda kalıcı olmayan ve çakışmaya neden olan bir sorun düzeltildi.
  • Outlook’un, koyu mod kullanılırken “Kimden” alanında açılan listeyi göstermemesi sorunu düzeltildi.

 

word new iconWord

Önemli düzeltmeler 

  • Kullanıcı Asıl Adı’nı (UPN) insanlar için büyük/küçük harfe duyarlı hale getiren bir sorun düzeltildi. Örneğin; User.Name@microsoft.com, user.name@microsoft.com ile eşleşmiyor ve kullanıcıların SharePoint Siteleri hizmetlerine ulaşmalarını engelliyordu.
  • Bir belge düzenleme korumalı olduğunda, Karşılaştır özelliğinin çalışmasını engelleyen bir sorun düzeltildi.

 

PowerPoint

Önemli düzeltmeler 

  • Kullanıcı Asıl Adı’nı (UPN) insanlar için büyük/küçük harfe duyarlı hale getiren bir sorun düzeltildi. Örneğin; User.Name@microsoft.com, user.name@microsoft.com ile eşleşmiyor ve kullanıcıların SharePoint Siteleri hizmetlerine ulaşmalarını engelliyordu.
  • Farenizi üzerine getirdiğinizde, önerilen küçük resimlerin parlaması sorunu düzeltildi. Bu, bazı durumlarda PowerPoint’in çökmesine neden oluyordu.

 

excel new iconExcel

Önemli düzeltmeler 

  • Kullanıcı Asıl Adı’nı (UPN) insanlar için büyük/küçük harfe duyarlı hale getiren bir sorun düzeltildi. Örneğin; User.Name@microsoft.com, user.name@microsoft.com ile eşleşmiyor ve kullanıcıların SharePoint Siteleri hizmetlerine ulaşmalarını engelliyordu.

 

Office insider ‘da Mart ayında gelen tüm yenilik ve güncellemeleri sizler için derledik.Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

 

EXCEL’DE ÖZEL MENÜ OLUŞTURUN

Bu yazımızda, herhangi bir kod gerektirmeden Excel‘de ihtiyaca Özel Menü nasıl oluşturulur ondan bahsedeceğiz. Diğer özelliklerle ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz. 

 

ÖZEL MENÜ OLUŞTURUN RAHAT EDİN

Bildiğiniz üzere Excel‘de Dosya menüsüyle başlayıp Yardım menüsüne kadar birçok menü ve o menülerde onlarca özellikler mevcut. Bazen ihtiyacımız olan özellik hangi menüdeydi diyebiliyoruz ya da menülerde hiç kullanmadığımız özellikler bulunabiliyor. Bazen de insan biraz değişiklik istiyor. 😃..  Tüm bu durumların önüne geçmek adına, isterseniz kendi özel menü ‘nüzü oluşturup istediğiniz menü sıralamasına da getirebilir ve bütün işlerinizi o menüden halledebilir hâle gelebilirsiniz. Üstelik bu işlemi gerçekleştirmek için herhangi bir UI Editör‘e ihtiyacınız yok.

özel menü

 

NEREDEN BAŞLAYALIM?

Özel menü oluşturmak için Excel Seçeneklerindeki Şeridi Özelleştir alanına gitmemiz gerek. Oraya ulaşmak için iki yolumuz var.

1’nci yol;

  • Dosya
  • Seçenekler
  • Şeridi Özelleştir

 

2’nci yol;

  • Hızlı Erişim Araç Çubuğunu Özelleştir
  • Diğer Komutlar
  • Şeridi Özelleştir

 

Her iki yoldan da ulaşacağım penceremiz burası olacak.

şeridi özellştir

 

Bu pencereye gelip hemen Yardım menüsünü seçip Yeni Sekme butonuna basarak yeni bir sekme/menü oluşturalım.

Yeni Sekme (Özel) ‘i seçip “Yeniden Adlandır“a basarak oluşacak bu yeni menümüze bir isim verelim. Örneğin PEAKUP yazalım.  “Yeni Grup“u da seçip ona da isim olarak ekleyeceğiniz özelliklere göre bir isim verebilirsiniz. Şimdilik Veri Analizi diyebiliriz.

Artık oluşturduğumuz bu menüye, veri analizi ile ilgili en sık kullandığımız özellikleri/komutları ekleyebiliriz.

 

Dilerseniz buraya kadar anlatılanları aşağıdaki görseldeki gibi tekrar edip uygulayabilirsiniz.

özel menü ekle

 

Eğer Veri Analizi grubunun üzerinde sağ tıklayıp Komut Etiketlerini Gizle seçeneğini seçerseniz.

 

komut etiketlerini gizle

 

Komutlarınız menüde bu şekilde mini komut olarak görünecektir.  mini etiket

 

Bu şekilde Yeni Gruplar oluşturarak, bir menüde birden fazla grup ekleyebilirsiniz, ya da Yeni Sekme butonuyla Yeni Menüler oluşturabilir ve bu menüyü Dosya menüsünden sonraki ilk sırada konumlandırabilirsiniz.

özel menü yeni

Bence bir süre bu şekilde menüler oluşturup deneyin derim..  😄 Daha fazla detay için Microsfot Docs’taki bu bağlantıya bakabilirsiniz.

 

 

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Hücreyi Resim Olarak Kopyalama Yöntemleri

Bu yazımızda, Excel’de Hücreyi resim olarak kopyalama yöntemlerinini aktarıyor olacağız. Bu işlem için kullanabileceğimiz üç yöntem bulunuyor. Yazımızda bu yöntemleri ve önerilerimizi göreceksiniz. Blog sayfamızda bu gibi birçok özelliği bulabilirsiniz, takip etmeyi ihmâl etmeyin. 👍🏻

 

NEDEN İHTİYAÇ OLUR?

Tablomuzdaki bir aralığın görüntüsünün kopyasını bazen resim olarak diğer office uygulamalarına ya da herhangi bir uygulamaya aktarmak isteyebiliyoruz. Örneğin; seçilen tablo aralığını kopyalayıp Outlook, Word vb. office uygulamalarına direkt yapıştır dediğimizde tablo olarak yapıştıracaktır. Bu şekilde tablonun üzerinde değişikliğe müsait olduğu için aslında hücreyi resim olarak kopyalama ya da kopyalanan veriyi resim olarak yapıştırmak daha uygun bir ilerleyiş olacaktır.

 

HÜCREYİ RESİM OLARAK KOPYALAMA YÖNTEMLERİ

İlk yöntemimiz; Giriş

menüsündeki Pano grubu içerisindeki Resim Olarak Kopyala seçeneğinden.

hücreyi resim olarak kopyalama

 

İkinci yöntemimiz; hücre aralığını seçip kopyaladıktan sonra Özel Yapıştırma Seçeneklerinden Resim seçeneğini seçerek.

özel yapıştırma seçeneği

 

Bu şekilde resim olarak yapıştırdığınızda, kopyaladığınız hücredeki veriler değiştiğinde resim üzerindeki verilerde bir değişiklik olmaz. Fakat özel yapıştırma seçeneklerindeki Bağlı Resim / Köprülü Resim olarak yapıştırdığınızda kopyaladığınız hücre aralığındaki verilerde bir değişiklik yaptığınızda, resim üzerinde de bağlı olduğu hücrelerin görüntüsünün değiştiğini görebilirsiniz. Bu bize dinamik bir görüntü sağlayacaktır.

Aynı şekilde başka bir Office uygulamasında, özel yapıştırma seçeneklerinden Bağlantılı Yapıştır seçeneğini seçerek de, Excel‘de kopyaladığınız veri aralığında bir değişiklik yapıldığında Word ve PowerPoint gibi diğer Office uygulamalarında da değişikliği aynı anda görüntüleyebilirsiniz.

 

Şimdi Bağlı Resim olarak yapıştırmaya bir örnek verelim. Kopyalanan tablodaki bir hücredeki veriyi değiştirdiğimizde resim üzerinde de değişikli olduğunu göreceksiniz.

 

bağlı resim

 

Üçüncü yöntemimiz; Excel’deki Kamera özelliğini kullanarak, seçilen hücre aralığının resmini çekip yapıştırmak istediğimiz hücreyi seçerek hafızadaki resmin o hücreye aktarılmasını sağlayabiliriz. Bunun için Hızlı Erişim Araç Çubuğuna Kamera özelliğini şu yolla ekleyerek kullanabilirsiniz.

  • Dosya
  • Seçenekler
  • Hızlı Erişim Araç Çubuğu
  • Şeritte Bulunmayan Komutlar
  • Kamera
  • Ekle
  • Tamam

Bu işlemleri gerçekleştirdikten sonra Hızlı Erişim Araç Çubuğunda bu şekilde hücreyi resim olarak kaydetme kamera özelliği Kamera ikonunu göreceksiniz. Kamera özelliğinin her zaman orada olmasını öneririm.

Şimdi bu özelliği kullanarak hücreyi resim olarak kopyalama ve yapıştırma işleminin ne kadar kolay olduğunu görelim.

hücreye resim eklemek

 

Sizlere aktarmış olduğumuz bu üç yöntemle hücre aralığını resim olarak kaydedebilirsiniz.  Dilerseniz Microsoft Support sayfasından da ilave bilgiler edinebilirsiniz.

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

EXCEL ile OUTLOOK ÜZERİNDEN TOPLU MAİL GÖNDERME

Bu yazımızda, birçok kullanıcının ihtiyacı olduğunu bildiğim, Excel Eğitimlerinde de nasıl yapabiliriz denilen bir konuyu sizlere aktarıyor olacağım. Vakit kaybetmeden Excel ile Outlook üzerinden toplu mail nasıl gönderebiliriz ona biraz bakalım.

excel toplu mail

Öncelikle Excel ile Outlook üzerinden toplu mail gönderme işini VBA‘nın, yani herkesin bildiği isimle makroların gücüyle yapıyor olacağız. O yüzden az biraz makro bilginiz olursa iyi olur fakat konuyu basit anlatacağım ve birçok kod satırı klişe olduğundan, makro bilginizin olması çok da şart değil diyebilirim. Ayrıca her bir kod satırının da ne anlama geldiğini belirtmiş olacağım. Önce tüm kodları size vereceğim. Sonra da tek tek o kodların açıklamalarını yapacağım. Çok daha geliştirilebilir elbette fakat şu an için basit bir şekilde toplu mail nasıl gönderilir onu aktarıyor olacağım. İlaveten yazının sonunda uygulama örnek dosyasını da ekleyeceğim.

Hadi başlayalım. 👍🏻

 

İlk etapta şöyle bir tablomuz olduğunu varsayıyorum.
Gönder butonuna bastığımızda 2. satırdan başlayarak son satıra kadar tüm mailleri göndermesini sağlayacağız.

excelvba mail listesi

 

Excel ile OUTLOOK Üzerinden Toplu Mail Gönderme – TÜM KODLAR

Sub PEAKUP_Mail_Gonder()
   Dim Outlook As Object, yeni As Object, i As Long
   Set Outlook = CreateObject("Outlook.Application")
   For i = 2 To Cells(Rows.Count, "A").End(3).Row
      Set yeni = Outlook.CreateItem(0)
      With yeni
         .To = Range("B" & i).Value
         .Subject = Range("C" & i).Value
         .Body = Range("D" & i).Value
         .Display
         '.Send
     End With
   Next i
   Set Outlook = Nothing: Set yeni = Nothing: i = Empty
   MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName
End Sub

Evet.. ihtiyacımız olan kodlar aslında bu kadar. Şimdi her bir kod satırının ne iş yaptığına geçelim. Yukarıda da belirttiğim gibi, aslında yukarıdaki tüm kodları bir kalıp/klişe olarak düşünebilirsiniz. Bu kodları alıp, kime, konu ve açıklama kısımlarını sizin dosyanıza göre uyarlamanız yeterli olacaktır.

 

Sub PEAKUP_Mail_Gonder()

Makromuza/Prosedürümüze PEAKUP_Mail_Gonder ismini veriyoruz.

Dim Outlook As Object, yeni As Object, i As Lon

Kullanacağımız değişkenlerimizi tanımlıyoruz. Değişken tanımlamak zorunlu değil fakat faydalıdır diyebiliriz. Detayları değişkenler ve tanımlama yöntemleri yazımızda aktarıyor olacağım.

Set Outlook = CreateObject("Outlook.Application")

Late Binding

metodu ile Outlook uygulamasını oluşturuyoruz. (İki metot var; Early Binding ve Late Binding)

For i = 2 To Cells(Rows.Count, "A").End(3).Row

2. satırdan A sütunundaki dolu olan son satır numarasına kadar bir For döngüsü oluşturuyoruz. Teker teker tüm satırlardaki adreslere mail göndermesi için kullanıyoruz.

Set yeni = Outlook.CreateItem(0)

Outlook

‘ta Yeni butonuna basar gibi, set ederek yeni bir mail oluşturulmasını sağlıyoruz.

With yeni

Aşağıdaki kodlar Yeni oluşturulan maildeki alanları ifade ettiği için, her seferinde yeni kelimesini yazmamak adına bir kereliğine With yeni diyerek altındaki satırların yeni ile ilgili olduğunu belirtiyoruz ve alttaki kodlarda dikkat ederseniz .To  – .Subject şeklinde devam eder. Yani hepsi Yeni oluşturulan mail ile ilgili satırlar.

.To = Range("B" & i).Value

Kime mail göndereceğimizi belirtiyoruz. Burada B sütunundakilere gideceğini belirttik.

.Subject = Range("C" & i).Value

Konunun ne olacağını belirtiyoruz. Konular C sütunundakiler demiş olduk.

.Body = Range("D" & i).Value

Mail gövdesine de D sütunundakileri yazmasını istiyoruz.

.Display

Maili göndermeden önce ekrana getirip görüntülemenizi sağlar.

.Send

Maili gönderir.

End With

With

deyimini End With ile mutlaka kapatıyoruz.

Next i

Döngüde bir sonraki satıra geçmesini söylüyoruz.

Set Outlook = Nothing: Set yeni = Nothing: i = Empty

Oluşturulan değişkenlerin içlerini boşaltıyoruz. Şart değil fakat hafızada yer kaplamaması için bu şekilde belirttik.

MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName

MesajBox (MsgBox) ile mail gönderiminin bittiğini belirten bir bilgi penceresi alıyoruz.

End Sub

Makromuzu/Prosedürümüzü sonlandırıyoruz.

 

 

MAİLE EK BİLGİLER EKLEMEK

Dosya Eklemek

İsterseniz mail gönderirken, bilgisayarınızdaki herhangi bir konumda bulunan dosyayı da bu kodlarla maile eklenmesini sağlayabilirsiniz. Aşağıdaki kod satırını, .To – .Subject ifadelerinin altına yazabilirsiniz.

.Attachments.Add "dosya konumu"

Mesaj Gövdesindeki Metni HMTL Görünüme Kavuşturmak

.Body

kullanıp mesaj gövdesine düz bir metin yazmak yerine isterseniz .HtmlBody yazarak html tagları ile mesaj gövdesindeki metni düzenleyebilir, görselleştirebilirsiniz.

Örneğin;

.HTMLBody = "

CC ve BCC EklemekEğer göndereceğiniz maile başka kişileri de CC veya BCC ‘ye koymak isterseniz. Kodlardaki .To satırının altına bu kodları ilave edebilirsiniz..CC = “CC ‘ye eklenecek mail adresi .BCC = “CC ‘ye eklenecek mail adresiMail Önceliği BelirlemekMailinizi yüksek öncelikli olarak göndermek isteyebilirsiniz o zaman da bu kod satırını ilave edebilirsiniz..Importance = 2
Evet.. şimdiye kadar yazdıklarımı inceleyip öğrendiysek artık uygulayabiliriz. 😃
Kodları çalıştırdığımızda aşağıdaki gif resimdeki gibi tüm adreslere hızlı bir şekilde mailler gönderilecektir.
Not: Kodlardaki .Display yerine .Send ‘i aktif ederseniz, maili görüntülemeden direkt olarak gönderir.excelvba outlook ile mail göndermek
Uygulama dosyasını buradan 👉🏻 indirebilirsiniz.
Başka bir örneği de bu adreste bulabilirsiniz.
Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Merhabalar,
” & Range(“D” & i).Value & “

Haftanıngünü Fonksiyonu – Weekday

[vc_row][vc_column][vc_column_text]Bu yazımızda, Tarih ve Saat fonksiyonlarından, günlük hayatta birçok işimize yarayabilecek bir fonksiyon olan HAFTANINGÜNÜ Fonksiyonu ‘ndan bahsedeceğim. Bu fonksiyon bize; belirli bir tarih için haftanın gününü temsil eden sayıyı döndürür. Yani 1 ile 7 arasında bize bir sayı değeri verir ki; biz o sayıdan belirtilen tarihin kendi haftası içerisindeki kaçıncı gün olduğunu bilelim ve ona göre işlemler yaptıralım. Dilerseniz Haftanıngünü Fonksiyonu ile ilgili detaylara support office ‘den de erişebilirsiniz. Diğer fonksiyonlarla ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz. 

 

HAFTANINGÜNÜ FONKSİYONU NE İŞE YARAR

HAFTANINGÜNÜ fonksiyonu ; belirtilen tarihin kendi haftası içerisindeki kaçıncı gün olduğunu verir ve ona göre işlemler yaparız. Örneğin; bir sütundaki tarihlerin hangileri hafta sonuna denk geliyorsa onlar renkli görünün isteyebiliriz. Ya da sütundaki ödeme tarihleri hangi güne denk gelirse gelsin, sizin ödeme gününüz Cuma günü ise tüm tarihleri kendi haftasındaki Cuma gününe ayarlayabilirsiniz.

 

YAZMA FORMU

haftanıngünü fonksiyonu argümanHaftanıngünü Fonksiyonu ‘nda 2  argüman bulunuyor.Bunlardan 1. si gerekli, diğer argüman da opsiyonel/isteğe bağlıdır.Şimdi bu argümanların anlamlarına, yani fonksiyonun bizden ne isteğine ve bizim ona ne vereceğimize bakalım.haftanıngünü fonksiyonu argüman listesi

 

ÇALIŞMA KOŞULLARI

Haftanıngünü fonksiyonu ‘nun çalışma koşulları bu şekildedir;

  • Microsoft Excel, hesaplamalarda kullanılabilmeleri için tarihleri sıralı seri numaraları olarak saklamaktadır. Varsayılan olarak, 1 Ocak 1900’ün seri numarası 1’dir; 1 Ocak 1900’den 39.448 gün sonra olması nedeniyle 1 Ocak 2008’in seri numarası 39448’dir.

  • Geçerli tarih taban değeri için seri_no aralık dışındaysa #SAYI! hatası verilir.
  • Döndür_tür yukarıdaki tabloda belirtiler aralığın dışındaysa #SAYI! hatası verilir.

  • Takvim özelliği ayarı Gregorian ise, döndürülen tam sayı tarih argümanı için haftanın Gregorian gününü temsil eder.
    Takvim Hicri ise, iade edilen tam sayı, tarih argümanı için haftanın Hicri gününü temsil eder.
    Hicri tarihleri için, argüman numarası 1/1/100 (Gregorian Aug 2, 718) ‘den 4/3/9666 (Gregorian Dec 31, 9999)’ a kadar bir tarihi ve/veya zamanı temsil edebilen herhangi bir sayısal ifadedir.

 

HAFTANINGÜNÜ FONKSİYONU KULLANIMI

Haftanıngünü Fonksiyonu ‘nda öncelikle seri_no argümanı için gün sayısını almak istediğimiz tarihi seçiyoruz, sonrasında döndür_tür argümanında da geriye döndürmesini istediğiniz türü seçiyoruz, orada haftanın ilk günü ile son günlerinin belirtildiği seçenek listesi karşımıza gelir, bizim için geçerli olan 2 sayısının olduğu, 1. gün pazartesi, 7. gün pazar olan seçenektir. Yani; döndür_tür argümanı için de 2 seçeneğini seçip formülü tamamlıyoruz.

 

HAFTA SONUNA DENK GELEN TARİHLERİ RENKLENDİRMEK

Bir sütunda Mart ayına ait tarihlerin olduğu bir liste varsayalım. İlk bakışta o tarihlerin hangi güne denk geldiklerini bilemeyiz. O sütunu seçip Giriş menüsündeki Sayı gurubundan Biçim olarak Uzun Tarih’i seçerseniz gün adını size verecektir ve belki de bu işinize yarayacaktır, fakat bizim istediğimiz bize bir gün adını vermesi değil, hangi tarihler hafta sonu ise o tarihlerin renkli biçimde gösterilmesidir. Bunu Koşullu Biçimlendirme özelliğinde Haftanıngünü Fonksiyonu ‘nu kullanarak kolayca yapabiliriz. Renkler, bir veriyi analiz etmemizde oldukça faydalıdır..

 

Hadi örneklerimize başlayalım.  Siz de benimle beraber adım adım uygulayın.
Koşullu Biçimlendirme özelliğinde bu istediğimiz işi yapan hazır bir kural maalesef mevcut değil.
O zaman ne yapıyoruz? Kendi kuralımızı formülle oluşturup , o kurala göre renklenmesini sağlıyoruz..
Hafta sonlarını bulup bu şekilde renklendirebilirsiniz.

weekday fonksiyon kullanımı

 

ÖDEME TARİHİNİ CUMA GÜNÜNE AYARLAMA

Bir örnek de ödeme tarihini Cuma gününe ayarlama ile ilgili yapalım.Bu işlem için ELEMAN ve HAFTANINGÜNÜ fonksiyonu ‘nu bir  arada kullanacağız.Sizler de bunu uygulayıp, birkaç kez tekrar ederek mantığını anlamaya çalışın.weekday ile ödeme gününü cuma gününe ayarlama

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

RASGDİZİ Fonksiyonu – RANDARRAY

[vc_row][vc_column][vc_column_text]Bu yazımızda yeni dinamik dizi fonksiyonlarından Rasgdizi Fonksiyonu ‘ndan bahsedeceğim.
Bazen rastgele verilerle doldurulmuş bir veri tablosuna ihtiyacımız olur. Bu fonksiyonla istediğiniz satır ve sütun sayısınca sayısal verileriniz hızlıca doldurabilirsiniz. Diğer fonksiyonlarla ilgili yazılarımızı da yine blog sayfamızda bulabilirsiniz.

 

NE İŞE YARAR

Rasgdizi Fonksiyonu

; belirtilen satır ve sütun sayısınca, yine belirtilen minimum ve maksimum sayı arasında ondalıklı veya tam sayılardan oluşan rastgele sayı dizisi elde etmenizi sağlar. Argüman girmeden fonksiyonu tamamlarsanız 0 ile 1 arasında ondalıklı bir sayı döndürür. Örneğin; 20 satır ve 5 sütundan oluşan 50 ile 500 arasına tam sayıların olduğu bir tabloyu birkaç saniye ile hızlıca oluşturabilirsiniz. Aşağıda örneğini göreceksiniz.

 

YAZIM KALIBI
rasgdizi sözdizimi

Fonksiyonda 5  argüman bulunuyor.Bu 5 argüman da opsiyonel/isteğe bağlıdır.Şimdi bu argümanların anlamlarına, yani fonksiyonun bizden ne isteğine ve bizim ona ne vereceğimize bakalım.rasgdizi fonksiyonu argümanlar listesi

 

ÇALIŞMA KOŞULLARI

  • Satır veya sütun bağımsız değişkeni girmezseniz Rasgdizi fonksiyonu 0 ile 1 arasında tek bir değer döndürür.
  • Minimum veya maksimum bağımsız değişkenini girmezseniz RASGDİZİ varsayılan olarak sırasıyla 0 ve 1’i alır.
  • Minimum bağımsız değişkeni maksimumdan küçük olmalıdır; aksi takdirde RASGDİZİ #DEĞER! hatasını döndürür.
  • Tamsayı bağımsız değişkenini girmezseniz RASGDİZİ varsayılan olarak YANLIŞ veya ondalık değer kullanır.
  • RASGDİZİ fonksiyonu bir dizi getirir; dizi bir formülün nihai sonucuysa yan hücrelere geçer. Yani, ENTER tuşuna bastığınızda, Excel uygun boyutta bir dizi aralığını dinamik olarak oluşturur. Destek verileriniz bir Excel tablosundaysayapılandırılmış başvurular kullanıyorsanız dizi aralığınıza veri eklediğinizde veya dizi aralığınızdan veri çıkardığınızda dizi otomatik olarak yeniden boyutlandırılır. Daha fazla bilgi için geçmiş dizi davranışı ile ilgili makaleyi inceleyin.
  • RASGDİZİ S_SAYI_ÜRET işlevinden farklı, S_SAYI_ÜRET işlevinin bir dizi döndürmemesi nedeniyle S_SAYI_ÜRET ‘in tüm aralığa kopyalanması gerekir.
  • Diziler, bir değer sırası, bir değer sütunu ya da değer sırası ve sütunlarının bir kombinasyonu olarak düşünülebilir. Yukarıdaki örnekte, RASGDİZİ formülümüzün dizisi D2:F6 aralığıdır ve 5 satıra 3 sütundur.
  • Excel, çalışma kitapları arasındaki dinamik dizilere yönelik olarak sınırlı destek sunar ve bu senaryo yalnızca her iki çalışma kitabının da açık olması durumunda desteklenir. Kaynak çalışma kitabını kapatırsanız bağlantılı tüm dinamik dizi formülleri yenilendiğinde #BAŞV! hatası döndürür.

 

FONKSİYON KULLANIMI

Şimdi 3 farklı örnekle fonksiyonun nasıl çalıştığını görelim. Önce sadece satır ve sütun belirteceğiz, sonraki örnekte satır, sütun, min ve maks sayı değerlerini verip geriye bir dizi döndüreceğiz. Sonra olarak da geri dönmesini istediğiniz sayısal verinin tam sayı olmasını isteyeceğiz. Elde edeceğimiz görüntü bu şekilde olacak.

 

excel rasgdizi farklı örnekler

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]