Excel Makro Kod Parçacıkları | Genel

Merhaba, yıl 2000 de olsa, 2020 de excel her daim kullanışlıydı ve kullanışlı olmaya devam edecek.
Bir çok ihtiyacı görüyor standart formülleri ve araçlarıyla.
Zaman zaman makro da yazmak gerekiyor.
Bazı basit makrolar yazarken işime yarayan ufak scriptleri buradan da paylaşayım, belki birilerinin işine yarar.

Misal; bir kolondaki son satırı bulmak için aşağıdaki scripti kullanıyorum:

    Dim sonSatir As Integer
    Dim ws As Worksheet
    Set ws = Sheets("Sayfa1")
	
    sonSatir = ws.Cells(Rows.Count, "A").End(xlUp).Row

Bir kolonu komple silmek için aşağıdaki satır kullanılabilir:

Columns(7).EntireColumn.Delete

Bir hücrenin içerisindeki değer her kelimenin ilk harfi büyük olacak şekilde çevirmek için aşağıdaki kod kullanılabilir:

Dim ilkHarflerBuyukStr As String
ilkHarflerBuyukStr = Application.Proper(Trim(CStr(ws.Cells(1, 2))))

Aşağıdaki gibi bir veri olduğunu düşünelim elimizde:

İl            İlçe        Adet
Adana Ceyhan 5
Adana Pozantı 4
Adana Pozantı 44
Adana Pozantı 32
Afyon Emirdağ 2
Afyon Merkez 12
Ankara Beypazarı 8
Ankara Elmadağ 4
Çanakkale Ayvacık 3
Çanakkale Ayvacık 33

Bu veride birden fazla alana göre bir veya daha fazla kolonda toplama yapma ihtiyacımız olduğunu varsayalım.
Bu durumda aşağıdaki gibi bir metot yazmışım zamanında:

Sub birlestirVeTopla()
    For Each a In Range("A1", Cells(Rows.Count, "A").End(xlUp))
        For r = 1 To Cells(Rows.Count, "A").End(xlUp).Row - a.Row
            If a = a.Offset(r, 0) And a.Offset(0, 1) = a.Offset(r, 1) Then
                a.Offset(0, 2) = a.Offset(0, 2) + a.Offset(r, 2)
                a.Offset(r, 0).EntireRow.Delete
                r = r - 1
            Else
                Exit For
            End If
            DoEvents
        Next r
    Next a
    MsgBox "Tamamlandı."
End Sub

Çalıştırdıktan sonra ortaya çıkan sonuç.:

İl            İlçe        Adet
Adana Ceyhan 5
Adana Pozantı 80
Afyon Emirdağ 2
Afyon Merkez 12
Ankara Beypazarı 8
Ankara Elmadağ 4
Çanakkale Ayvacık 36

Bunu Pivot ile de yapmak muhtemelen mümkündür.
Ancak bazen onun yetersiz kaldığı yerlerde kullanılabilir diyerek bir kenarda durmasında fayda var.

Selamlar.

Leave a Reply

Your email address will not be published. Required fields are marked *