Excel 2007 de Boş Satır ve Sütunları Silen Makro
14 Nisan 2008 Pazartesi
Excel'de, eğer bir kısa yol oluşturmamışsanız saatlerce uğraşmanız gereken basit
işler karşınıza çıkabilir.
Mesela aynı olan satırları silmek. Bu işlem için bir makro kullanmak şarttı. Ama
2007 de artık bu iş için bir komut veri menüsünün altına eklenmiş.

Bir diğer çok sıkıcı işde boş satır ve sütunları silmektir. bir rapordan veya dış
bir veri kaynağından veri alırsınız arada boş satırlar yada boş sütunlar oluşur.
bunlar yüzlerce satır olabilir. Bunları bi düğmede silmek gerek. Basit bi iş ve
buna mesai harcamamalı.
Bunu bir makro oluşturarak yapabiliriz. 2007 de görünüm menüsünün altında makro
kaydı düğmesi var. Eskiden araçlar menüsündeydi. Şimdi görünümle daha alakalı görmüşler...
Ben pek sevmedim yeni yerini.

Kayıt makrosu, her düzey kullanıcının yapabileceği bir makro türüdür. Sık yaptığınız
uzun işlemleri kaydederek otomatik tekrar etmesini sağlayabilirsiniz.
Mesela hazırladığınız bir raporun adımlarını kaydedersiniz. bi düğmeye basarsınız
o adımları her ay siz değil excel tekrar tekrar yapar.

Bir diğer yöntemde kod ile makro oluşturmaktır. Excel içerisinde bir Visual basic
düzenleyicisi barındırır. Buradan her türlü programı yazabilirsiniz. Boş satır ve
sütunları anla ve sil gibi bir kod mesela.
Sub DeleteBlankRowsAndColumns()
'A1 hücresinden dolu olan son hücreye kadar olan alanı seç
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Dim i As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
'Tüm Satırlarda CountA(hücrenin içi dolu mu?)
'fonksiyonu 0 döndürüyorsa sil
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
'Tüm Sütunlarda CountA fonksiyonu 0 döndürüyorsa sil
For i = Selection.Columns.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Columns(i)) = 0 Then
Selection.Columns(i).EntireColumn.Delete
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
|
Bu kodu bir modüle eklemelisiniz. Alt + F11 kısa yolu ile VB düzenleyicisini açıp
ekranın sol tarafındaki Project ekranında sağ tık yapıp menüden insert > module
komutuna tıklayalım eklenen modüle kodu ekleyebiliriz. kaydettiğinizde artık makroları
görüntüle dediğimizde "DeleteBlankRowsAndColumns" makrosuda görüntülenir.

Excel dosyaları aslında bu makro sayesinde bir virüs taşıyıcısı da olabilir. Her
türlü kod yazılabilir dedik. Virüs de bu her türe dahil :) tanımadığınız dosyalarda
makro varsa aman açmayın. En basitinden şakacı biri size google'dan bulduğu bir
kodla çok acı verebilir. Mesela bütün word dosyalarınızı silebilir!
Sub Virusumsu()
Dim DosyaAdi As String
DosyaAdi = Dir$("c:\*.doc")
Do While DosyaAdi <> ""
KillProperly "c:\" & DosyaAdi
DosyaAdi = Dir$("c:\*.doc")
Loop
End Sub
|