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

14 Mayıs 2014 Çarşamba

Auto_open Auto_Close işlevleri


Excel dosyamız açılırken ve ya kapanırken yaptırmak istediğimiz işlemler için bir kaç kısa kod


excel dosyaları ile çalışırken bazen 1 den fazla sayfa kullanabiliyoruz. Ancak dosya açıldığında ilk görülen sayfa bazen son değişlik yaptığımız sayfa olabiliyor. Bunu engellemek ve dosyayı ilk açtığımızda görünecek sayfayı belirlemek için kullanacağımız kod:

Sub auto_open()

sheets("sayfa1").select

End sub

'dosya ilk açıldığında sayfa 1 görülecek şekilde ayarlamamızı yaptık artık dosyayı hangi sayfadan kapatırsanız kapatın açılış sayfanız sayfa 1 olacak.

Bazı durumlarda da ana datanın olduğu ya da bazı hesaplamaların bulunduğu sayfaların karşı kullanıcı tarafından görülmesini istemeyiz, bu sayfalar bir pivot tablo yu besliyor olabilir ya da silmek istemediğimiz bazı formülleri içerebilir bu nedenle sayfayı silmek de pek mümkün olmaz. Aşağıda sayfayı silmeden nasıl gizleyeceğimizin kodunu verelim:

Sub auto_open()

sheets("sayfa2").visible=False
sheets("sayfa3").visible=False

End sub

'artık sayfa 2 ve 3 dosya açıldığında gizlenmiş olacak, siz yeniden görmek istediğinizde False yerine True yazıp kodu çalıştırırsanız sayfanız geri gelecektir.


Şimdi de dosya kapanırken bir komut çalıştıralım, kullanıcıya istediğimiz bir mesajı gösterelim:

Sub auto_close()

MsgBox "Raporumuzu incelediğiniz için teşekkür ederiz"

End sub



22 Nisan 2014 Salı

Visual Basic - Select Case Kullanımı


Bu fonksiyon if-elseif fonksiyonunun bir alternatifi olarak kullanılır. if fonksiyonu ile aynı işlevi görür. Ancak yazımı ve kurgusu if e göre biraz daha basit olduğu söylenebilir.

örnek olarak öğrencilerin aldıkları puana göre durumlarını iyi orta kötü olarak sınıflandıralım:


Function durum(puan As Double) As String

If puan >= 80 Then

durum = "iyi"

ElseIf puan >= 40 Then

durum = "orta"

Else: durum = "kötü"

End If

End Function


      Şimdi aynı kodu case ile yazalım,


Function durum(puan As Double) As String

Select Case puan

Case Is >= 80
durum = "iyi"

Case Is >= 40
durum = "orta"

Case Else

durum = "kötü"

End Select

End Function

Case fonksiyonunda kontrol edeceğimiz değişken select case in yanına yazılır, caseler ile değişkenin değerine göre sonucu döndürür. burada "case else" aynı "else" gibi işlev görür. yani yukarıdaki değerler dışında bir değer gelirse "kötü" yazılsın gibi.


21 Mart 2014 Cuma

Kullanıcı Tanımlı Fonksiyonlar (User Defined Functions)



Excelde hazır fonksiyonlar yeterli gelmediği zaman ya da sürekli tekrarladığınız bir işlemi artık
tekrar tekrar formül çubuğuna yazmak istemediğiniz durumlarda kendi tanımladığınız fonksiyonları kullanabilirsiniz.

Öncelikle boş bir excel sayfası açalım ve visual basic ekranına girelim (kısayol:alt F11)

Buradan içinde bulunduğumuz excel sayfasına bir modül ekleyerek kod ekranına geçelim.

Burada kolaydan zora doğru sıralanan 3 farklı fonksiyon örneği göreceğiz.

 
1) KDV  hesaplama,

Function kdv 'fonksiyonumuzun adı (a as integer ' hesaplamada kullanacağımız değişken tipi)

kdv= a *0,18

End function





2)  Çok değişkenli sayı tipi sonuç döndüren eğer'li fonksiyon,

Vade aralığına göre çekilen krediye ne kadar faiz ödeyeceğimizi hesaplayalım,

örneğin 12 aya kadar ki vade de fazi oranı % 1, 12 - 24 ay arası %1,2, 24 aydan fazlası % 1,8 faiz olsun,

Function faizhesapla(ByVal anapara As Double, ByVal vade As Integer) As Double

If vade <= 12 Then
faizhesapla = 0.1 * anapara

ElseIf vade <= 24 Then
faizhesapla = 0.12 * anapara

Else: faizhesapla = 0.18 * anapara

End If
 
End Function

şimdi adım adım kodu okumaya çalışalım:
 
Function faizhesapla(ByVal anapara As Double, ByVal vade As Integer) As Double 'bir fonksiyon oluştur adı faizhesapla olsun, dışarıdan tipi double olan ana para ve tipi tam sayı olan vade değerlerini alsın ve sonucu double tipiyle döndürsün.



3) String tipi (sayı olmayan metin olarak) sonuç döndüren bir fonksiyon yazalım,

Öğrencilerin notlarına göre geçti ya da kaldı bilgisi döndüren fonksiyon


Function gectikaldi(ByVal a As Double) As String

Select Case a

Case Is < 40
gectikaldi = "kaldi"

Case Is >= 40
gectikaldi = "gecti"

End Select

End Function



27 Kasım 2012 Salı

VBA Döngülerle Koşullu Biçimlendirme


Bu yazıda vba ile minimum ve maximum değerlerin renklendirilmesi

Yapacağımız örnekte ay bazında çeşitli ürünlerin satış adetleri mevcut ve bizden istenilen her ay en çok ve en az satan ürünlerin belirtilmesi.
En çok satan ürünü sarı, en az satan ürünü ise kırmızı ile renklendireceğiz.

 
A
B
C
D
E
F
G
1
aylar
ürün-1
ürün-2
ürün-3
ürün-4
ürün-5
 
2
ocak
62
56
65
42
52
 
3
şubat
32
76
62
54
74
 
4
mart
59
39
29
70
73
 
5
nisan
60
36
69
58
27
 
6
mayıs
69
40
54
38
32
 
7
haziran
80
56
72
52
39
 
8
temmuz
52
39
37
34
51
 
9
ağustos
32
20
68
41
33
 
10
eylül
47
28
67
20
75
 
11
ekim
50
53
71
72
32
 
12
kasım
30
23
66
26
25
 
13
aralık
26
49
42
36
21
 
14
 
 
 
 
 
 
 
15
 
 
 
 
 
 
 
 
Burada her satırı bağımsız bir yapı olarak ele alıp her satırın içindeki hücrelerde dolaşarak maximum ve minimum değerlerini bulmamız gerekiyor.

Sub renklendir()
 
Dim rng As Range
 
Dim i As Integer
 
For i = 2 To 13 'i değeri satır numaramızı verecek A2 ile A13 arasındaki tüm satırlarda sırayla dolaşacağız.
 
For Each rng In Range("A" & i & ":" & "F" & i)
 
If rng.Value = Application.WorksheetFunction.Max(Range("A" & i & ":" & "F" & i)) Then
'üstünde bulunduğun hücre bu aralıklatki en büyük hücre ise

rng.Interior.Color = vbYellow 'rengini sarıya boya
 
ElseIf rng.Value = Application.WorksheetFunction.Min(Range("A" & i & ":" & "F" & i)) Then
'üstünde bulunduğun hücre bu aralıklatki en küçük hücre ise

rng.Interior.Color = vbRed 'rengini kırmızıya boya
 
End If
 
Next rng
 
Next i 'bir sonraki satıra geç
 
End Sub


vba max min