excel vba etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
excel vba etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Haziran 2025 Cuma

Excelde sayıyı yazıyla yazdırma

Yeni sürüm

06/06/2025: Kodlar güncellendi

Option Explicit
Function YAZIYLA(sayi As Variant) As String
' Sayıyı yazıyla yazar
'
' Mesut Akcan
' https://www.mesutakcan.blogspot.com
' makcan@gmail.com
'
' 23 Nisan 2004
' Güncelleme: 5 Haziran 2025

Dim birler(9) As String, onlar(9) As String, buyukSayi(4) As String
Dim basamak(1 To 15) As Byte, grup(1 To 3) As Byte
Dim sayiMetni As String, grupMetni As String
Dim sonuc As String
Dim negatif As Boolean
Dim i As Byte, j As Byte 'index


If (Not IsNumeric(sayi)) Or (Len(sayi) > 15) Then ' Sayı değilse veya 15 basamaktan büyükse hata
	YAZIYLA = "#HATA!"
Exit Function
End If

If sayi < 0 Then
	negatif = True 'Sayı negatif
sayi = Abs(sayi)
End If

' Birler basamağı
birler(0) = ""
birler(1) = "Bir"
birler(2) = "İki"
birler(3) = "Üç"
birler(4) = "Dört"
birler(5) = "Beş"
birler(6) = "Altı"
birler(7) = "Yedi"
birler(8) = "Sekiz"
birler(9) = "Dokuz"

' Onlar basamağı
onlar(0) = ""
onlar(1) = "On"
onlar(2) = "Yirmi"
onlar(3) = "Otuz"
onlar(4) = "Kırk"
onlar(5) = "Elli"
onlar(6) = "Altmış"
onlar(7) = "Yetmiş"
onlar(8) = "Seksen"
onlar(9) = "Doksan"

' Büyük sayılar
buyukSayi(0) = "Trilyon "
buyukSayi(1) = "Milyar "
buyukSayi(2) = "Milyon "
buyukSayi(3) = "Bin "
buyukSayi(4) = ""

sayiMetni = Right(String(15, "0") & CStr(Fix(sayi)), 15) ' Sayıyı metne çevir ve boşlukları kaldır

' 1'den 15'e kadar döngü
' karakterleri tek tek al ve sayıya çevir ve diziye aktar
For i = 1 To 15
	basamak(i) = CByte(Mid(sayiMetni, i, 1))
Next

sonuc = "" ' Sonuç metni

' sayı metnini 3'erli 5 gruba ayır ve her grubu yazıya çevir
For i = 0 To 4
	For j = 1 To 3 'gruptaki yüzler, onlar, birler basamakları
	grup(j) = basamak((i * 3) + j)
	Next
	
	Select Case grup(1) ' Yüzler basamağı
		Case 0 ' sıfır ise
			grupMetni = "" ' Yüzler basamağı metni boş
		Case 1 ' 1 ise
			grupMetni = "Yüz" ' Yüzler basamağı metni "Yüz"
		Case Else ' 2-9 arası ise
			grupMetni = birler(grup(1)) & "Yüz" ' Yüzler basamağı metni "İkiYüz", "ÜçYüz" vb.
		End Select
		
		grupMetni = grupMetni & onlar(grup(2)) & birler(grup(3)) ' Onlar ve birler basamağını ekle
		
		If grupMetni <> "" Then
			grupMetni = grupMetni & buyukSayi(i) ' Büyük sayıları ekle
			If (i = 3) And (grupMetni = "BirBin ") Then
				grupMetni = "Bin" ' "BirBin" durumunu düzelt
			End If
		End If
	sonuc = sonuc & grupMetni ' Sonucu birleştir
Next
sonuc = Trim(sonuc)
If sonuc = "" Then
	sonuc = "Sıfır"
ElseIf negatif Then
	sonuc = "Eksi " & sonuc
End If
YAZIYLA = sonuc
End Function 

YAZIYLA fonksiyonunu kullanma

  • Kodları kopyalayın.
  • Excelde dosya açıkken ALT+F11 tuşlarına basın (yada Şerit menüden Geliştirici / Visual Basic tıklayın)
  • VBA Editöründe menüden Insert / Module tıklayın.
  • Menüden Edit / Paste ile ya da Ctrl+V ile kopyalanan kodları yapıştırın.
  • Artık YAZIYLA fonksiyonunu diğer Excel fonksiyonları gibi hücrelerde kullanabilirsiniz.

Eski sürüm

Excelde sayıyı yazıyla yazdırmak için gerekli fonksiyonu oluşturan VBA kodları
Kodlar aşağıdaki excel dosya içinde de mevcuttur.
VBA kodlarını görmek için dosyayı açtıktan sonra ALT+F11'e basın.
İndir YAZIYLA.XLS 130 Kb

YAZIYLA fonksiyonunu tüm excel dosyalarında kullanma

Bu işlemler bir defa yapılacaktır.
yaziyla.xls dosyasını açın.
Oku1, Oku2 ve Test sayfalarını silin (Sayfaya geçin Düzen/Sayfayı sil)
Dosya / Farklı kaydet'i tıklayın
Kayıt Türü listesinden "Microsoft Office Excel Eklentisi (*.xla)" seçin
Kayıt Yeri 'nde "Addins" belirir.
Kaydet'i tıklayın
Dosyayı kapatın

Yeni bir excel dosyası ya da varolan bir excel dosyanızı açın
Araçlar / Eklentiler' i tıklayın
Burada "Kullanılabilir eklentiler"de "Yazıyla" göreceksiniz. Yanındaki kareyi tıklayıp seçin.
Tamam'ı tıklayın.
Artık her excel dosyasında YAZIYLA fonksiyonunu başka bir işlem yapmadan rahatlıkla kullanabilirsiniz.
Option Explicit
Function YAZIYLA(sayi As Variant) As String
' Sayıyı yazıyla yazar

' Mesut Akcan
' https://www.mesutakcan.blogspot.com
' makcan@gmail.com

' 23 Nisan 2004
' Güncelleme: 31 Mart 2011

Dim b(9) As String, y(9) As String, m(4) As String, a As String
Dim v(15), c(3)
Dim pozitif As Byte, x As Byte
Dim s As String, e As String

b(0) = ""
b(1) = "Bir"
b(2) = "İki"
b(3) = "Üç"
b(4) = "Dört"
b(5) = "Beş"
b(6) = "Altı"
b(7) = "Yedi"
b(8) = "Sekiz"
b(9) = "Dokuz"

y(0) = ""
y(1) = "On"
y(2) = "Yirmi"
y(3) = "Otuz"
y(4) = "Kırk"
y(5) = "Elli"
y(6) = "Altmış"
y(7) = "Yetmiş"
y(8) = "Seksen"
y(9) = "Doksan"

m(0) = "Trilyon "
m(1) = "Milyar "
m(2) = "Milyon "
m(3) = "Bin "
m(4) = ""

a = Str(Int(sayi))
If Left$(a, 1) = " " Then pozitif = 1 Else pozitif = 0
a = Right$(a, Len(a) - 1)
For x = 1 To Len(a)
	If (Asc(Mid$(a, x, 1)) > Asc("9")) Or (Asc(Mid$(a, x, 1)) < Asc("0")) Then GoTo hata
Next x
If Len(a) > 15 Then GoTo hata
a = String(15 - Len(a), "0") + a
For x = 1 To 15
	v(x) = Val(Mid$(a, x, 1))
Next x
s = ""
For x = 0 To 4
	c(1) = v((x * 3) + 1)
	c(2) = v((x * 3) + 2)
	c(3) = v((x * 3) + 3)
	If c(1) = 0 Then
		e = ""
	ElseIf c(1) = 1 Then
		e = "Yüz"
	Else
		e = b(c(1)) + "Yüz"
	End If
e = e + y(c(2)) + b(c(3))
If e <> "" Then e = e + m(x)
If (x = 3) And (e = "BirBin ") Then e = "Bin"
s = s + e
Next x
If s = "" Then s = "Sıfır"
If pozitif = 0 Then s = "Eksi " + s
YAZIYLA = s
GoTo tamam
hata:
YAZIYLA = "Hata"
tamam:
End Function

19 Kasım 2023 Pazar

Excel VBA: Belirtilen aralıktaki çift, tek veya tüm sayıların sayısı

Yayınlama: 4/4/2014
Güncelleme: 19/11/2023
Eğer Excel'de kullanabileceğiniz bir özel fonksiyon olsaydı, "SayiSay" fonksiyonu şu şekilde işlev görebilirdi:

=SayiSay(hücreler; sayiCesidi)

Bu fonksiyon, belirtilen hücre aralığındaki sayıların sayısını belirli bir kriter veya sayı türüne göre sayan bir formül sağlar. "hücreler" parametresi, sayıları içeren hücre aralığını temsil ederken, "sayiCesidi" parametresi ise sayılardan hangi türleri saymak istediğinizi belirler.

Örneğin:

Eğer "sayiCesidi" parametresi 1 olarak belirlenirse, fonksiyon belirtilen hücre aralığındaki tek sayıların sayısını verir.
Eğer "sayiCesidi" parametresi 2 olarak belirlenirse, fonksiyon çift sayıların sayısını verir.
Eğer "sayiCesidi" parametresi belirtilmez veya 0 olarak belirlenirse, fonksiyon hücre aralığındaki tüm sayıların sayısını verir.
Bu örnek formül, belirli bir hücre aralığındaki sayıların çeşidine göre sayım yapmanıza olanak tanıyan özelleştirilmiş bir Excel fonksiyonunu temsil etmektedir. Ancak, bu fonksiyon Excel'in standart fonksiyonları arasında yer almamaktadır, bu nedenle böyle bir fonksiyonu kullanabilmek için aşağıdaki kodlar gibi özel bir VBA (Visual Basic for Applications) makro yazmanız gerekecektir.

Fonksiyonun kullanımı

hücreler olarak: "A1:E4" gibi çok sayıda hücre
sayiCesidi olarak:
Tüm sayılar için 0
Tek sayı için 1
Çift Sayı için 2
girin.

Örnek 1: =SayiSay("A1:E5")
"A1:E5" aralığındaki tüm sayıların sayısını verir.
Örnek 2: =SayiSay("A1:E5";0)
"A1:E5" aralığındaki tüm sayıların sayısını verir.
Örnek 3: =SayiSay("A1:E5";1)
"A1:E5" aralığındaki tek sayıların sayısını verir.
Örnek 4: =SayiSay("A1:E5";2)
"A1:E5" aralığındaki çift sayıların sayısını verir.

Kodları eklemek için:
Excelde ALT+F11'e basın.
Menüden Insert / Module tıklayın.
Aşağıdaki kodları ekleyin
Option Explicit
'Blog sayfam	 : https://mesutakcan.blogSpot.com
'Youtube Kanalım : https://www.youtube.com/mesutakcan
'WhatsApp kanalım: https://www.whatsapp.com/channel/0029Va5h4cQ0LKZLuB9Dpy23
'Telegram kanalım: https://t.me/mesutakcan
Enum eSayiCesidi
	tumSayilar = 0
	tekSayilar = 1
	ciftSayilar = 2
End Enum

Function SayiSay(hucreler As Range, _
	Optional sayiCesidi As eSayiCesidi = tumSayilar) As Long
	
	Dim hucre As Range
	Dim sayiAdedi As Long
	
	' belirtilen tüm hücreler
	For Each hucre In hucreler
		' hücre değeri sayı ise
		If IsNumeric(hucre.Value) Then
			'sayıları say
			If (sayiCesidi = tumSayilar) Or _
				(sayiCesidi = tekSayilar And hucre.Value Mod 2 <> 0) Or _
				(sayiCesidi = ciftSayilar And hucre.Value Mod 2 = 0) Then
					sayiAdedi = sayiAdedi + 1
			End If
		End If
	Next
	
	SayiSay = sayiAdedi
End Function

29 Ekim 2023 Pazar

VBA'da Erken Bağlama ve Geç Bağlama

VBA (Visual Basic for Applications) Microsoft Office uygulamalarını özelleştirme ve otomasyon için yaygın bir şekilde kullanılan bir araçtır. Ayrıca AutoCAD, SolidWorks gibi programlarda eklenti olarak kullanılmaktadır.

VBA nesnelerle etkileşim kurarken iki farklı bağlama türü kullanılır.

  1. Erken bağlama (Early binding)
  2. Geç bağlama (Late binding).

Bu yazıda, her iki bağlama türünü açıklayacak ve hangi durumda hangi türün kullanılması gerektiğini inceleyeceğiz.

1) Erken Bağlama

Erken bağlama nedir?

Erken bağlama(early binding), VBA kodunun nesnelerin ve metodların türünü ve özelliklerini tasarım zamanında tanımladığı bir bağlama türüdür. Erken bağlama, VBA kodunun daha hızlı çalışmasını sağlar ve daha fazla tür güvenliği sunar. Ayrıca, IntelliSense gibi kod geliştirme araçlarına daha fazla destek sağlar.

Erken bağlamanın avantajları

  • Performans: Erken bağlama, VBA kodunun daha hızlı çalışmasını sağlar. Çünkü nesnelerin ve yöntemlerin türleri tasarım zamanında bilindiği için, derleyici daha iyi optimize edebilir.
  • Tür Güvenliği: Erken bağlama, kodunuzun daha güvenli hale gelmesini sağlar. Çünkü türler ve yöntemler tasarım zamanında belirlendiği için, hatalı türlerle veya eksik yöntemlerle çalışma riski daha düşüktür.
  • Kod Hata Ayıklama: Erken bağlama ile kod hata ayıklamak daha kolaydır. Çünkü nesnelerin ve yöntemlerin türleri belirli olduğu için, hata ayıklayıcı daha fazla yardımcı olabilir.
  • IntelliSense Desteği: Erken bağlama, kod yazarken IntelliSense(akıllı kod tamamlama) gibi kod geliştirme araçlarının kullanımını destekler. Bu, kodunuzu daha hızlı ve hatasız bir şekilde yazmanıza yardımcı olur.
  • Kodun Okunabilirliği: Erken bağlama ile çalışırken, kodunuz daha okunabilir hale gelir. Çünkü nesnelerin ve yöntemlerin türleri ve özellikleri açıkça belirtilir.
  • Referans Yönetimi: Erken bağlama, projenizin referanslarını daha iyi yönetmenizi sağlar. Referansları eklemek ve kaldırmak daha kolaydır.
  • Dokümantasyon Desteği: Erken bağlama, nesnelerin ve yöntemlerin tasarım zamanında belirlendiği için, daha iyi dokümantasyon sağlar. Bu, başkalarının kodunuzu daha iyi anlamasına yardımcı olur.
  • Kodun Daha İyi Anlaşılması: Erken bağlama ile çalışırken, kodun ne yaptığı daha açık bir şekilde anlaşılır. Çünkü türler ve yöntemler adından ve belirli olduklarından, kodun amacı daha belirgin hale gelir.
Erken bağlama, özellikle büyük ve karmaşık projelerde, performans ve güvenlik açısından büyük avantajlar sunar. Ancak, belirli durumların gerektirdiği esneklik ve uyumluluk ihtiyaçlarına göre geç bağlama (late binding) veya karışık bir yaklaşım kullanmak da gerekebilir. Projenizin ihtiyaçlarına ve hedeflerine bağlı olarak doğru bağlama türünü seçmek önemlidir.

Erken bağlamanın dezavantajları

  • Versiyon Uyumsuzluğu: Erken bağlama, belirli bir sürümün nesnelerini ve özelliklerini kullanmayı gerektirir. Bu, uygulamanın daha yeni veya daha eski sürümleri ile uyumsuzluk sorunlarına yol açabilir. Kodunuzu bir sürümden diğerine taşırken düzenlemeler yapmanız gerekebilir.
  • Dosya Boyutu: Erken bağlama kullanırken, projenizin dosya boyutu artabilir. Çünkü erken bağlama referanslarını projenize eklediğinizde, bu referanslar projenizin boyutunu artırabilir. Bu, dosyanın taşınabilirliğini ve paylaşılabilirliğini azaltabilir.
  • Yavaş Geliştirme: Erken bağlama ile çalışırken, IntelliSense gibi kod geliştirme araçları daha iyi çalışsa da, bazı durumlarda daha fazla kod yazma işlemi gerekebilir. Bu, kodunuzu geliştirmenin daha fazla zaman almasına neden olabilir.
  • Referans Yönetimi: Erken bağlama kullanırken, projenize eklediğiniz referansları yönetmek zor olabilir. Özellikle başka bir bilgisayara taşındığında veya farklı bir VBA ortamında çalıştırıldığında referansların eksik veya hatalı olması sorunlara yol açabilir.
  • Esneklik Sorunları: Erken bağlama, projenizin esnekliğini azaltabilir. Eğer uygulamanın veya nesne modelinin belirli bir sürümüne bağlı kalırsanız, yeni özelliklere veya sürümlere uyum sağlama konusunda kısıtlamalarla karşılaşabilirsiniz.
  • Hata Ayıklama: Erken bağlama, hata ayıklamayı bazen zorlaştırabilir. Çünkü nesne türleri ve özellikleri kodun yazıldığı anda belli olur ve çalışma zamanında değiştirilemez. Bu, hataların nedenlerini bulmayı zorlaştırabilir.

Bu dezavantajlar, projenizin gereksinimlerine ve çalışma koşullarına bağlı olarak değişebilir. Erken bağlama ve geç bağlama (late binding) arasında doğru dengeyi bulmak, projenizin ihtiyaçlarına uygun bir şekilde kod yazmanıza yardımcı olabilir.

Erken bağlama kullanımı:

Erken bağlama kullanmak için öncelikle hedef uygulamanın veya nesne modelinin referanslarını eklemeniz gerekir.

13 Ağustos 2023 Pazar

Excel VBA: Aktif hücre renklendirme

Excel VBA makrosu kullanarak, Excel tablosundaki aktif hücreleri renklendirerek hücre takibini yapmak  kolaylaştırılabilir.

Bu işlem için aşağıdaki VBA makro kodunu kullanabilirsiniz.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
	'Mesut Akcan
	'13/8/2023
	'mesutakcan.blogspot.com

	'Geri Al (Ctrl + Z) çalışmaz
	Static oncekiHucre As Range, zeminRengi As Long
	' Önceki hücrenin zemin rengini geri yükle
	If Not oncekiHucre Is Nothing Then
		oncekiHucre.Interior.ColorIndex = zeminRengi
	End If
	' Aktif hücre zemin rengini aktar
	zeminRengi = Target.Interior.ColorIndex
	' Aktif hücrenin zemin rengini sarı yap
	Target.Interior.ColorIndex = 6 'sarı renk
	' Aktif hücre bilgilerini aktar
	Set oncekiHucre = Target
End Sub

13 Aralık 2022 Salı

Excel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarma

Yayınlama: 20/02/2021
Güncelleme: 13/12/2022
Donanım Haber Forumundaki bir soru üzerine cevap olarak verdiğim Excel VBA kodlamaları buraya aktarıyorum.

Soru 1

Elimde içerisinde 40.000 satır veri bulunan bir Excel dosyası var. Bu 40.000 satırı 100'erli olarak bölmem gerekiyor.

Cevap: Aşağıdaki yazdığım VBA makrosu ile 100'erli satır olarak yeni eklenen sayfalara aktarılmaktadır.
Makroları kullanmak için;
Excel dosyası açıkken;
Excel durum çubuğundaki sayfa adında sağ tıkla / Kod görüntüle
Kod alanına aşağıdaki kodları ekle
Çalıştırmak için F5e bas ya da Excel'e geç / ALT+F8e bas makroyu seç / Çalıştır.

Sub SatirlariSayfalaraAktar_v1()
 'Excel satırlarını 100'erli olarak bölüp yeni sayfalara aktarır
 'makro: Mesut Akcan
 '15 Eylül 2018
 For n = 1 To Cells.SpecialCells(xlLastCell).Row Step 100
     satirlar = Str(n) & ":" & Trim(Str(n + 99))
     Rows(satirlar).EntireRow.Copy
     Sheets.Add After:=ActiveSheet
     ActiveSheet.Paste 
     DoEvents
 Next
 Sheets(1).Activate
 End Sub

Soru 2

Bu 100'lü bölümleri farklı yeni Excel dosyası olarak kaydedebilir miyiz.

4 Mayıs 2022 Çarşamba

Excel: Aktif satır ve sütun renklendirme

Yayınlama: 19/06/2016
Güncelleme: 04/05/2022
Makro kullanarak Excelde aktif satır ve sütunu renklendirerek hücre takibi yapmak kolaylaştırılabilir.
Bu işlem için üç farklı VBA makro kodu veriyorum.
Kodları deneyip uygun olanını kullanabilirsiniz.

Makro eklemek için önce aşağıda verilen makro kodunu kopyalayın.
Excelde sayfa adı(Sayfa1, Sayfa2 ...) üzerinde sağ tıklayın
Açılan menüde Kod görüntüle tıklayın.

24 Eylül 2021 Cuma

Excel VBA ile Yazı Animasyonu


Excel VBA ile Yazı Animasyonu
Sub Animasyon()
'makro: Mesut Akcan
'23/9/2021
'mesutakcan.blogspot.com

With ActiveSheet.Shapes.Range(Array(1)).TextFrame2.ThreeD
'With ActiveSheet.Shapes.Range("yazi1").TextFrame2.ThreeD

    .Visible = msoFalse
    .BevelTopType = msoBevelAngle
    .SetPresetCamera (msoCameraPerspectiveLeft)
    .FieldOfView = 100
    .BevelTopInset = 0
    .BevelTopDepth = 0
    .RotationX = 0
    .Depth = 4.5
    .BevelBottomInset = 8
    .BevelBottomDepth = 5
    .BevelBottomType = msoBevelAngle
    For n = 0 To 8
        .BevelTopInset = n
        If n > 5 Then a = 5 Else a = n
        .BevelTopDepth = a
        bekle 2000
    Next

    For n = 0 To 360 Step 10
        .LightAngle = n
        bekle 2000
    Next
    For a = 360 To 0 Step -10
        .RotationX = a
        .RotationZ = -a
        bekle 1000
    Next
End With
End Sub

Sub bekle(t)
    For n = 1 To t: DoEvents: Next
End Sub

7 Mart 2020 Cumartesi

Excel VBA'da Regular Expressions(Düzenli İfadeler) kullanımı

Regular Expressions(Düzenli ifadeler) nedir?

Kısaca RegEx veya RegExp olarak kullanılan düzenli ifadeler günümüz modern programlama dillerinin birçoğunda bulunmaktadır.
Regex, ele alınan metindeki karakterler dizisinin kısa yoldan ve esnek bir biçimde bulunmasını ve gerekirse değiştirmesini sağlar.

RegEx hakkında ayrıltılı açıklama için şu sayfalara da bakabilirsiniz:
Perl Regular Expressionlar 1

List_of_Regular_Expressions
Wikipedi Düzenli ifade

İngilizce kaynaklar:
Regexr.com
Regular-expressions.info
Regex101.com
Rexegg.com
Regexone.com

Excel VBA'da RegEx kullanımı

Normalde Excel VBA'da RegEx ile ilgili bir özellik yoktur. Ancak Microsoft VBScript Regular Expressions referansı ile bu sağlanabilmektedir.

Excel VBA'ya bu referansı eklemek için iki yol var:

1. yol:

Excel VBA Editöründe(ALT+F11) iken menüden Tools / References ... tıklanır. Açılan pencerede listeden Microsoft VBScript Regular Expressions seçilip OK tıklanır.
Sub Test()
 ' Tools / Reference ile
 ' Microsoft VBScript Regular Expressions
 ' ekleyin
 Dim RegEx As RegExp
 Set RegEx = New RegExp

2. yol:

16 Kasım 2019 Cumartesi

akcanSoft XLS to VCF v1.0


Excel tablosuna eklediğiniz kişi telefon rehberi bilgilerini bir çok program ve uygulama tarafından kabul edilen VCF dosya formatında çıktı almanızı sağlayan bir excel dosyası.

Dosya Excel VBA makro kodları içermektedir.
İngilizce ve Türkçe olarak kullanılabilir.

akcanSoft XLS to VCF v1.0
Excel dosyayı indir: https://github.com/akcansoft/XLS-to-VCF/raw/master/akcanSoft XLS to VCF v1.0.xlsm 36.5 Kb

7 Eylül 2019 Cumartesi

Excel ile yıllık takvim

Güncelleme: 7 Eylül 2019
Excel'de hazırladığım Yıllık takvimler.
Buradaki Excel dosyalar istediğiniz herhangi bir yıla göre takvim hazırlar.

akcanSoft Yıllık Takvim:

İstediğiniz yılın yıllık takvimini hazırlar. Geçmiş ya da gelecek yıl, fark etmez
Yıllık Takvim İndir 64.5 KB. Excel dosya

akcanSoft Yıllık Takvim 2:

Üstteki gibi istediğiniz yılın yıllık takvimini hazırlar. Kurban ve ramazan bayramlarını da gösterir.
Yıllık Takvim 2 İndir 62.5 KB. Excel dosya


akcanSoft Çalışma Takvimi:

Öğretmen ve öğrenciler içindir. Ağustos ayından başlayıp sonraki yılın Temmuz ayına kadar yıllık çalışma takvimi hazırlar. İstediğiniz öğretim yılına göre hazırlar
Çalışma Takvimi İndir 63 KB. Excel dosya

akcanSoft Çalışma Takvimi 3:

Excel 2016 ile hazırlandı.
Öğretmen ve öğrenciler içindir.
Eylül ayından başlayıp sonraki yılın Temmuz ayına kadar yıllık çalışma takvimi hazırlar.
Geçmişte ya da gelecekteki bir yıla göre istediğiniz öğretim yılına göre anında hazırlar.
Kurban ve Ramazan bayramının 1. gününü hesaplar. Not: Bayram günü 1 günlük sapma yapabilir
Çalışma Takvimi 3 İndir 30.59 KB.

5 Nisan 2014 Cumartesi

EXCEL VBA: Belirtilen aralıktaki çift ya da tek sayıların toplamı

Excelde kullanabileceğiniz özel bir fonksiyon
=SayiTopla(hücreler,tip)
Bu formül belirtilen hücrelerdeki çift ya da tek sayıların toplamını verir

hücreler olarak: "A1:E4" gibi çok sayıda hücre.
tip olarak:
Tek sayı için: 1
Çift Sayı için: 0

Örnek: =SayiTopla("A1:E5";1)
"A1:E5" aralığındaki tek sayıların toplamını verir

Kodları eklemek için:
Excelde ALT+F11 e basın.
Menüden Insert / Module tıklayın.
Aşağıdaki kodları ekleyin
Function SayiTopla(hucreler As Range, tip As Integer)
' tip:
' 0: Çift sayi
' 1: Tek sayi
Dim arrayA As Variant
Dim i As Integer, j As Integer, artan As Integer
Dim sayi As Variant
arrayA = hucreler.Value

For i = 1 To hucreler.Rows.Count
 For j = 1 To hucreler.Columns.Count
  sayi = arrayA(i, j)
  artan = sayi Mod 2
  If artan = tip Then
   SayiTopla = SayiTopla + sayi
  End If
 Next
Next
End Function

10 Nisan 2011 Pazar

Excelde YAZIYLATL fonksiyonu

Verilen sayıyı yazıyla yazdırır. 123 için Yüzyirmiüç gibi.
Sonuna TL ve Kr ekler. Parasal değerler için uygundur.
Açıklamalar ve örnekler ve fonksiyon VBA kodları dosya içinde mevcuttur.

İndir: YAZIYLATL.XLS (126 Kb)

6 Haziran 2009 Cumartesi

Excelde 100'lük notu(puanı) 5'lik not sistemine dönüştürme

Excelde öğrenci notlarını ORTALAMA işlevini kullanarak ortalamasını alabiliyoruz. 100'lük notu(puanı) 5'lik nota çevirme işlemi ise biraz uğraştırıcı. Nasıl yapılacağını aşağıdaki adımları takip ederek öğrenebilirsiniz.
  • Önce Excel'i açın
  • 100'lük notları(puanları) bir sütuna alt alta yazın
  • 5'lik not sistemine çeviri için iki yol var
  • Birincisi: İç içe eğer işlevi kullanmak. Önce onu öğrenelim
  • Üstteki resimde görüldüğü gibi iç içe eğer işlevlerini kullandık. Notlar C9 hücresinde ise kullanılacak formül aşağıda
=EĞER(C9<25;0;
  EĞER(C9<45;1;(
   EĞER(C9<55;2;
    EĞER(C9<70;3;
     EĞER(C9<85;4;
      EĞER(C9<=100;5;-1)))))))
  • Burada 0'dan küçük sayılar da 0 olarak gösteriliyor. 100den büyükler ise hatalı sayı girdiğini göstermek için -1
  • 0'dan küçükleri de -1 göstermek için bir iki işlev daha eklemek gerekir. Ama asıl amacımız iç içe eğer kullanmak yerine daha kullanışlı olan 2 yolu kullanmak
  • 2. yol: VBA makrolarını kullanmak
  • VBA da bir fonksiyon tasarlayacağız. VBA editörüne geçiş yapmak için klavyeden ALT+F11 tuşlayın