Excel VBA DatePart işlevi, belirli bir tarih veya saat değerinden belirli bileşenleri çıkarmanıza olanak tanıyan yerleşik bir işlevdir. Öncelikle Excel içindeki Visual Basic for Applications (VBA) programlamasında tarihleri işlemek ve onlarla çalışmak için kullanılır.
Bir örneğe bakalım. Kod, aralık argümanı “h” olarak ayarlanmış VBA DatePart fonksiyonunu kullanarak myDateTime değişkeninden geçerli saati çıkarır. “Now” fonksiyonu geçerli tarih ve saati myDateTime'a atar. Çıkarılan saat daha sonra MsgBox fonksiyonu kullanılarak bir mesaj kutusunda görüntülenir.

Bu kodu çalıştırdığınızda, geçerli saati belirten bir mesaj kutusu görüntülenecektir. Örneğin, geçerli saat 09:00 PM ise, mesaj kutusu “Geçerli saat: 21” gösterecektir.

- Excel VBA DatePart fonksiyonu, verilen bir tarih veya saat değerinden belirli aralıkları (yıl, ay, gün, vb.) çıkarır.
- VBA DatePart fonksiyonunun sözdizimi aralık, tarih, haftanınilkgünü ve yılınilkhaftası argümanlarından oluşur.
- Değişkenleri tanımlama, tarih veya saat değeri atama ve fonksiyonu kullanarak istenilen aralığı çıkarma gibi adımları izleyerek VBA DatePart fonksiyonunu kullanabilirsiniz.
- VBA DatePart fonksiyonu veri analizi, tarih hesaplamaları, sıralama ve filtreleme, yaş hesaplama gibi çeşitli uygulamalara sahiptir.
- Önemli hususlar arasında doğru tarih biçimlendirmesi, doğru aralık argümanları, firstdayofweek ve firstweekofyear için isteğe bağlı argümanlar ve Excel VBA'da VBA DatePart, DateValue ve Date fonksiyonları arasındaki farkların anlaşılması yer alır.
Sözdizimi
DatePart fonksiyonunun sözdizimi aşağıdaki gibidir:
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
Fonksiyon aşağıdaki argümanları alır:
interval: Çıkarmak istediğiniz zaman aralığını belirten bir dize ifadesi. Aşağıdaki değerlerden biri olabilir:
| Aralık | Tanım |
|---|---|
| “yyyy” | Yıl |
| "Q" | Çeyrek |
| "M" | Ay |
| "e" | Yılın günü |
| "D" | Gün |
| "s" | Hafta içi |
| "ww" | Yılın haftası |
| "H" | Saat |
| "N" | Dakika |
| "S" | Saniye |
tarih (date): Belirtilen aralığı çıkarmak istediğiniz geçerli bir tarih veya saat ifadesi.
firstdayofweek: (İsteğe bağlı) Haftanın ilk gününü belirten isteğe bağlı bir değer. Aşağıdaki değerlerden biri olabilir:
vbUseSystemDayOfWeek: Haftanın ilk günü için sistem ayarını kullan (varsayılan).
| Değer | Tanım |
|---|---|
| vbSunday | Pazar (varsayılan) |
| vbMonday | Pazartesi |
| vbTuesday | Salı |
| vbWednesday | Çarşamba |
| vbThursday | Perşembe |
| vbFriday | Cuma |
| vbSaturday | Cumartesi |
firstweekofyear: (İsteğe bağlı) Haftanın ilk gününü belirten isteğe bağlı bir değer. Aşağıdaki değerlerden biri olabilir:
vbUseSystem: Yılın ilk haftası için sistem ayarını kullan (varsayılan).
vbFirstJan1: 1 Ocak tarihini içeren hafta.
vbFirstFourDays: Yeni yılda en az dört gün olan ilk hafta.
VBA'da DatePart Fonksiyonu Nasıl Kullanılır (Adımlarla)
VBA'da DatePart işlevini kullanmak için şu adımları izleyin:
Adım 1: Excel'i açın ve VBA Düzenleyicisini açmak için Alt + F11 tuşlarına basın.

Adım 2: Üst menüden Ekle'ye tıklayıp Modül'ü seçerek yeni bir modül ekleyin .

Adım 3: DatePart fonksiyonunu kullanacak olan yeni oluşturulan modüle VBA kodunu yazın. Gerekli değişkenleri bildirin.
Örneğin:
Dim result As Integer
Dim myDate As Date
Adım 4: myDate değişkenine bir tarih veya saat değeri atayın.
myDate = #7/11/2023#
Adım 5: DatePart işlevini kullanarak tarihten istenen aralığı çıkarın. Örneğin, yılı çıkarmak için:
result = DatePart(“yyyy”, myDate)
Adım 6: Sonucu gerektiği gibi görüntüleyin veya kullanın.
MsgBox result
Adım 7: F5 tuşuna basarak veya araç çubuğundaki “Çalıştır” butonuna tıklayarak VBA kodunu çalıştırın .

Örnekler
Excel'de DatePart fonksiyonunun nasıl kullanılacağına dair birkaç örneğe bakalım.
Örnek 1: VBA DatePart Year fonksiyonunu kullanarak bir tarihten yılı çıkarma.
Adım 1: Sub YearFromDate() yazarak “YearFromDate” alt rutinini başlatın.

Adım 2: Çıkarılan yıl değerini depolamak için “result” adında bir tamsayı değişkeni bildirin.

Adım 3: Yılın çıkarılacağı belirli tarihi saklamak için “myDate” adında bir tarih değişkeni bildirin.

Adım 4: “myDate” değişkenine #7/11/2023# tarih değerini atayın.

Not: VBA'da # sembolü, bir tarih sabitini temsil etmek için ayırıcı olarak kullanılır. Bir tarihi # sembollerinin içine aldığınızda, bir tarihin dize gösterimi yerine doğrudan bir tarih değeri sağladığınızı belirtir.
Adım 5: VBA DatePart yıl fonksiyonu, yılı “myDate” değişkeninden çıkarır. Çıkarılan yıl değerini “result” değişkeninde saklayın.

Adım 6: “MsgBox result” kodunu kullanarak bir mesaj kutusunda “result” değerini görüntüleyin.

Adım 7 : Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, YearFromDate'i seçin ve çalıştırın.

Adım 8: Kodu çalıştırdığınızda, bir mesaj kutusu aracılığıyla görüntülenen sonuç yılı olan 2023'ü göreceksiniz.

İşte kodun tamamı:
Sub YearFromDate()
Dim result As Integer
Dim myDate Tarih Olarak
myDate = #7/11/2023#
result = DatePart(“yyyy”, myDate)
MsgBox result
End Sub
Örnek 2: Bir Tarihten Ayın Çıkarılması (İki Basamaklı Biçim)
Adım 1: Sub MonthFromDate() yazarak “MonthFromDate” alt rutinini başlatın.

Adım 2: Çıkarılan ay değerini depolamak için “result” adında bir tamsayı değişkeni bildirin.

Adım 3: Ayın çıkarılacağı belirli tarihi saklamak için “myDate” adında bir tarih değişkeni bildirin.

Adım 4: “myDate” değişkenine #7/11/2023# tarih değerini atayın.

Adım 5: DatePart işlevi, “myDate” değişkeninden ayı çıkarır. Çıkarılan ay değerini “result” değişkeninde saklayın.

Adım 6: “Sonuç” değerini iki basamaklı bir sayı biçiminde bir ileti kutusunda görüntüleyin.

Adım 7: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, MonthFromDate'i seçin ve çalıştırın.

Adım 8: Kodu çalıştırdığınızda, ortaya çıkan ay olan 7'nin VBA DatePart iki basamaklı ay "Biçimlendirme" fonksiyonu kullanılarak biçimlendirildiğini ve biçimlendirilmiş sonuç olan "07"nin bir mesaj kutusu kullanılarak görüntülendiğini göreceksiniz.

İşte tam kod:
Sub MonthFromDate()
Dim result As Integer
Dim myDate As Date
myDate = #7/11/2023#
result = DatePart(“m”, myDate)
MsgBox Format(result, “00”)
End Sub
Örnek 3: Yılın Gününü Çıkarma
Adım 1: Sub DayOfYear() yazarak “DayOfYear” alt rutinini başlatın.

Adım 2: Yılın günü değerini depolamak için “result” adında bir tamsayı değişkeni bildirin.

Adım 3: Yılın hangi gününden alınacağını belirten belirli tarihi saklamak için “myDate” adında bir tarih değişkeni tanımlayın.

Adım 4 : “myDate” değişkenine #7/11/2023# tarih değerini atayın. myDate = #7/11/2023# yazın. Tarihi gerektiği gibi ayarlayın.

Adım 5 : “myDate” değişkeninden yılın gününü çıkarmak için DatePart işlevini kullanın. Çıkarılan değeri “result” değişkeninde saklayın.

Adım 6: “result” değerini bir mesaj kutusunda görüntüleyin. MsgBox result yazın.

Adım 7: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, DayOfYear'ı seçin ve çalıştırın.

Adım 8: Kodu çalıştırdığınızda, VBA DatePart gün fonksiyonu kullanılarak biçimlendirilen ve bir mesaj kutusu kullanılarak görüntülenen yılın günü olan 192 sonucunu bulacaksınız.

İşte tam kod:
Sub DayOfYear()
Dim result As Integer
Dim myDate As Date
myDate = #7/11/2023#
sonuç = DatePart(“y”, myDate)
MsgBox result
EndSub
DatePart Fonksiyonunun Kullanımı
- VBA DatePart işlevi, Excel'de tarihlerle çalışırken VBA programlamada yaygın olarak kullanılır. İşte bazı yaygın kullanım örnekleri:
- Veri Analizi: VBA DatePart işlevi, verileri belirli zaman aralıklarına göre analiz edebilir. Örneğin, bir tarihten ayı çıkarabilir ve daha fazla analiz veya raporlama amacıyla verileri aya göre gruplandırabilirsiniz.
- Koşullu Biçimlendirme : Koşullu biçimlendirme kurallarında, hücreleri belirli tarihlere veya zaman aralıklarına göre vurgulamak için VBA DatePart işlevini kullanabilirsiniz. Örneğin, çeşitli tarihler içindeki tüm hafta sonlarını veya haftanın belirli günlerini vurgulayabilirsiniz.
- Tarih Hesaplamaları: VBA DatePart işlevi, tarih veya zaman aralıklarını içeren hesaplamalar yapmak için diğer matematiksel işlemlerle birleştirilebilir. Tarihlerden belirli bileşenleri çıkarmanızı ve bu bileşenlere dayalı hesaplamalar yapmanızı sağlar.
- Tarih Biçimlendirme: VBA DatePart işlevini kullanarak tarih bileşenlerini çıkarabilir ve bunları gereksinimlerinize göre biçimlendirebilirsiniz. Özel biçimlendirilmiş tarih dizeleri oluştururken veya raporları belirli tarih bilgileriyle doldururken yararlı olabilir.
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA DatePart fonksiyonu düzgün biçimlendirilmiş tarih veya saat değerleriyle çalışır.
- Aralık argümanı çift tırnak işareti (“”) içine alınmalı ve çıkarmak istediğiniz istenen aralıkla eşleşmelidir. Geçersiz veya yanlış yazılmış herhangi bir aralık bir hatayla sonuçlanacaktır.
- Eğer firstdayofweek ve firstweekofyear isteğe bağlı argümanlarını atlarsanız, fonksiyon sistemde tanımlanan varsayılan ayarları kullanacaktır.
- VBA DatePart işlevi, çıkarılan aralığı temsil eden bir tamsayı değeri döndürür. Tür uyumsuzluğu hatalarından kaçınmak için sonucu alan değişkenin uygun VBA veri türünde (Integer) olduğundan emin olun.
- VBA DatePart fonksiyonu tarih bileşenlerini ayıklarken, TimePart fonksiyonu zaman bileşenlerini ayıklar.
- VBA DatePart işlevi hesaplamalar için Gregoryen takvim sistemini kullanır. Tarihlerinizin Gregoryen takviminin desteklenen aralığına (1 Ocak 100 - 31 Aralık 9999) düştüğünden emin olun.
