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

9 Ağustos 2011 Salı

LOGO Aktarım - VBA Kod Örnekleri

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