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.