Bu kısımda Vba örnek ifadeleri yayınlıyorum.Logo xml oluşturuken aşağıdaki işlemleri yapmam gerekti bende size madde madde açıklamaya çalıştm.
1.Bir hücre ( cell ) değerini değişkene atama:
Aşağıdaki kod sheet 1 sayfasındaki 6.satır ve 2 sütunun kesişimindeki hücrenin değerini verir.
Worksheets("Sheet1").Cells(6, 2).Value
2. Excelde Son satırın numarasını bulmak :
Bunu transaction satırlarında kaç kere döngüye girmem gerektiğini bulmam için kullanmıştım.İfadede bulduğum son satır değerini int tipinde bir değişkene atıyorum.
lastRow = ActiveSheet.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
3.Excelde kolonları toplama
Bana toplam borç ve alacak rakamları xml oluştururken lazım olacak.Dolayısı ile ilgili kolonları toplamam gerekiyor.Döngü (loop)yapmak VBA de çok basit öyleki döngü indisi için değişken tanımlamanıza bile gerek yok.Şöyleki , i döngü indisini ifade ediyor.Ayrıca i diye bir değişken declare etmem gerekli değil.
14.satırdan başlayıp son satır değerine kadar 7 kolondaki değerleri topluyorum.
For i = 14 To lastRow
borc= borc+ Worksheets("Sheet1").Cells(i, 7).Value
Next
4. Date ve Time Nesneleri
Oluşturduğum xml için zaman ve tarih bilgisine ihtiyacım vardı.Tarihi direk Date yazarak çağırabiliyorsunuz.Time' yazarak o anki saat,dakika ve saniye bilgileri geliyor.
Dim tarih as string
tarih = Date
msgbox ("Tarih:" & tarih )
Bize "Tarih :09.08.2011" çıktısını verecek.
msgbox ("Tarih:" & Time)
Zaman ise 21:58:02 şekline çıktı verecek.Fakat ben saat,dakika ve saniyeyi ayrı ayrı olarak xmle eklemeliyim.Bu yüzden SQL deki datepart() ile aynı özelliklere ve ada sahip fonksiyon işime yarayacak.
MsgBox ("Saat:" & DatePart("h", Time) & " Dakika:" & DatePart("n", Time) & " Saniye:" & DatePart("m", Time))
5. If Else Örneği
Ben yaşadım siz yaşamayın :) if else yazaren katil oluyordum.En basit yazılım ifadelerinden if else yazarken then'den sonra enter'a basmayı unutmayın çünkü yanyana yazında hata ile karşılaşıyorsunuz.Sql ile sürekli uğraşan biri olarak bu hataya anlam veremedim.
If CLng(Borc) > 0 And CLng(Alacak) = 0 Then
tmpTutar = Borc
trType = 1
ElseIf CLng(Alacak) > 0 And CLng(Borc) = 0 Then
tmpTutar = Alacak
trType = 2
Else
MsgBox ("Dikkat " & i - 14 & ". satır borc ve alacak alanları boş.")
End If
Veri ambarı,etl,veri madenciliği,yazılım ve veri tabanı ile ilgili kişisel deneyimlerimi bu platformda bulabilirsiniz.Şimdiye kadar microsoft teknolojilerini kullandım.Bu blog da Reporting ,Analysis,Integration Services,vb.net,c# ,Dynamics Ax,X++,vba gibi konulara ağırlık verilecektir. Devamlılığı sağlamayı umuyorum.
loop etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
loop etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
9 Ağustos 2011 Salı
Kaydol:
Kayıtlar (Atom)