Türkçe Excel Destek ve Bilgi Paylaşım Platformu     

Oturum Aç |  Kayıt Ol

Yeni konu gönder Konuya cevap yaz  [ 2 ileti ] 

24 Mar 2011, 14:31

Çevrimdışı
 Çeşitli Makro Örnekleri
Site Admin
Kullanıcı avatarı
Kayıt: 18 Ağu 2009, 10:48
İleti: 648


KARMA ÖRNEKLER

1- Hücre Seçmek.
Kod: Tümünü seç
Range("B2").Select

Kod: Tümünü seç
Cells(2,1).Select

Kod: Tümünü seç
[B2].Select

2- Hücreye değer atamak.
Kod: Tümünü seç
Range("B2").Value=100 'sayısal değer
Range("B2").Value="ExcelTürk" 'Text; tırnak iiinde

3- Hücredeki Fontun Büyüklüğünü değiştirmek
Kod: Tümünü seç
Range("B2").Font.Size=20

4- Hücredeki fontun adını değiştirmek.
Kod: Tümünü seç
Range("B2").Font.Name="Verdana"

5- Hücredeki fontu Kalın,İtalic ve Altı Çizgili yapmak.
Kod: Tümünü seç
Range("B2").Font.Bold = True
Range("B2").Font.Italic = True
Range("B2").Font.Underline = xlUnderlineStyleSingle

ya da
Kod: Tümünü seç
Range("B2").Select
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Underline = xlUnderlineStyleSingle

6- HÜcrenin dolgu rengini değiştirmek.
Kod: Tümünü seç
Range("B2").Interior.ColorIndex = 6 'Sarı renk

7- Hücrenin Fontunun rengini değiştirmek.
Kod: Tümünü seç
Range("B2").Font.ColorIndex = 3 'Kırmızı renk

8- Hücreye Formül yazdırmak.
Kod: Tümünü seç
Range("B2").Formula="=A1+A2"'A1 ve A2 hücresini toplar,B2 ye yazdırır.

9- Aktif olan hücrenin etrafındaki hücreyi seçmek
Kod: Tümünü seç
ActiveCell.Offset(1, 0).Select 'Aktif hücrenin altıdakini seçer.
ActiveCell.Offset(-1, 0).Select 'Aktif hücrenin üstündekini seçer.
ActiveCell.Offset(0, 1).Select 'Aktif hücrenin sağındakini seçer.
ActiveCell.Offset(0, -1).Select 'Aktif hücrenin solundakini seçer.

10- Aktif olan hücreden belirtilen uzaklığındaki hücreyi seçmek.
Kod: Tümünü seç
ActiveCell.Offset(0, 5).Select 'Aktif hücrenin sağındaki 5. hücreyi seçer.

11- Aktif hücreden belirtilen uzaklıktaki hücreye değer atamak.
Kod: Tümünü seç
ActiveCell.Offset(1, 1).Value = "ExcelTürk" 'Aktif hücrenin altında ve sağındaki hücreye ExcelTürk yazdorır.

12- Aktif hücrenin üzerindeki iki hücrenin değerleri toplanır ve sonuç aktif olan hücreye yazdırılrr.
Kod: Tümünü seç
Sub toplama()
t1 = ActiveCell.Offset(-1, 0).Value
t2 = ActiveCell.Offset(-2, 0).Value
ActiveCell.Value = t1 + t2
End Sub

13- Seçili hücrelerdeki biçimleri siler.
Kod: Tümünü seç
Selection.ClearFormats

14- Seçili hücreleri aşağı öteler.
Kod: Tümünü seç
Range("A1:A5").Select 'A1 ile A5 arasındaki hücreler seçilir.
Selection.Insert Shift:=xlDown 'Seçimi aşağı kaydırır. Burada sadece seçili olan 5 adet hücre aşağı kaydırılır

15- Seçili hücrelere ait tüm satırı ötelemek.
Kod: Tümünü seç
Range("A1:A5").Select
Selection.EntireRow.Insert 'XIV. koddan farklı olarak seçili olan hücrelere ait 1 ila 5 arasındaki tüm satırlar 5 satır aşağı ötelenir.

16- Seçili hücrelere ait tüm sütunu ötelemek.
Kod: Tümünü seç
Range("D6:E7).Select
selection.EntireColumn.Insert

17- Açık olan Excel çalışma Kitabının belirtilen sayfasındaki istenen hücreye değer atar.
Kod: Tümünü seç
Workbooks("Kitap1.xls").Worksheets("Sayfa1").Range("A1").Value = 3

18- Yapılan seçimlerde boo olmayan hücre sayısını verir.
Kod: Tümünü seç
Sub hucresayisi()
Dim kontur As Integer
kontur = Application.CountA(Selection)
MsgBox "Seçimdeki dolu hücrelerin sayısı:" & kontur
End Sub

19- Bir önceki maddedeki kodlamada 'CountA' da bulunan 'A' kaldııılırsa seçimde sadece kaç hücrede sayı (rakam) varsa onların adedini verir.
Kod: Tümünü seç
Application.Count(Selection)

20- Seçili hücrelerin sayısını verir.
Kod: Tümünü seç
Selection.Count

21- Seçimin satır sayısını verir.
Kod: Tümünü seç
Selection.Rows.Count

22- Seçimin sutun sayısını verir.
Kod: Tümünü seç
Selection.Columns.Count

23- Seçili hücrenin altında veriler varsa onları seçer. ilk boş hücreden sonra ilk değer olan hücreyi seçer.
Kod: Tümünü seç
Range(ActiveCell,ActiveCell.End(xlDown)).Select

24-Seçili hücrenin üstünde veriler varsa onları seçer. ilk boş hücreden sonra ilk değer olan hücreyi seçer.
Kod: Tümünü seç
Range(ActiveCell,ActiveCell.End(xlUp)).Select

25- Seçili hücrenin sağındaki veriler varsa onları seçer. ilk boş hücreden sonra ilk değer olan hücreyi seçer.
Kod: Tümünü seç
Range(ActiveCell,ActiveCell.End(xlToRight)).Select

26- Seçili hücrenin solunda veriler varsa onları seçer. ilk boş hücreden sonra ilk değer olan hücreyi seçer.
Kod: Tümünü seç
Range(ActiveCell,ActiveCell.End(xlToLeft)).Select

27- Aktif hücrenin etrafındaki dolu hücreleri seçer.
Kod: Tümünü seç
ActiveCell.CurrentRegion.Select

28- Seçimin etrafındaki dolu hücreleri seçer.
Kod: Tümünü seç
Selection.CurrentRegion.Select
ActiveCell.EntireColumn.Select

29- Seçili hücrelerin bulundukları sutunları tamamen seçer.
Kod: Tümünü seç
Selection.EntireColumn.Select

30- Aktif hücrenin bulunduğu satırı tamamını seçer.
Kod: Tümünü seç
ActiveCell.EntireRow.Select

31- Seçili hücrelerin bulundukları satırları tamamen seçer.
Kod: Tümünü seç
Selection.EntireRow.Select

32- Çalışma sayfasında bulunan bütün hücreleri seçer.
Kod: Tümünü seç
Cells.Select

33- Dolu hücrelerden sonraki ilk boş hücreyi seçer. (Sütunlar için.)
Kod: Tümünü seç
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select '(0,1) olduğu zaman satırlar için olur.
Loop
Eğer A1 Hücresi 1 ise Mesaj kutusu çalışsın ve ExcelTürk yazsın
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then
If Target.Value = "1" Then MsgBox "ExcelTürk"
End If
End Sub

Örneğin 4. sütunda işlem yapılırsa macro otomatik çalışsın
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 4 Then MsgBox "4. Sütunda İşlem Yaptınız"
End Sub

Örneğin 4. Satırda işlem yapılırsa macro otomatik çalışsın
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Row = 4 Then MsgBox "4. Satırda İşlem Yaptınız"
End Sub

Eğer A1 Hücresi sıfırdan büyükse macro Çalışsın
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Range("A1") >= 1 Then MsgBox "A1 Hücresindeki değer sıfırdan büyük"
End Sub

Eğer A1 Hücresinin Değeri A3 Hücresindeki değerden küçükse macro çalışsın
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Or Target.Address = "$A$3" Then
If Range("A1").Value < Range("A3").Value Then
Macro1
End If
End If
End Sub

Yazılan açıklamayı gösterir (selam)
Kod: Tümünü seç
Sub Macro1()
MsgBox "Selam"
End Sub

Eğer A1 Hücresinde işlem yapılırsa A2 Hücresine değiştirilme tarihi ve saatini yazar
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target = Cells(1, 1) Then Cells(2, 1) = Now
End Sub 'alternatif ŞİMDİ() or Bugün or Time

Eğer aktif hücre değeri 1 den büyük ise aktif hücrenin altına boş satır ekler
Kod: Tümünü seç
Sub InserLSiRupture()
Set x = ActiveCell
Do Until IsEmpty(x)
If x.Row > 1 Then
If x.Offset(-1, 0).Value <> x.Value Then
Rows(x.Row).Insert Shift:=xlDown
End If
End If
Set x = x.Offset(1, 0)
Loop
End Sub

Bir önceki işlem yapılan hücreyi seç
Kod: Tümünü seç
Sub LastCell()
Selection.SpecialCells(xlLastCell).Select
End Sub

Boş Hücreleri Seç
Kod: Tümünü seç
Sub boshucresec()
Selection.SpecialCells(xlCellTypeBlanks).Select
End Sub

Eğer aktif hücreler nümerik (sayı) ise ve 500 den büyükse kalın yap
Kod: Tümünü seç
Sub aktiflestir()
If IsNumeric(ActiveCell) Then
ActiveCell.Font.Bold = ActiveCell.Value >= 500
End If
End Sub

Eğer C1 hücresi boş ise C4 hücresini boşalt, boş değil ise C1 hücresindeki değeri yaz
Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$C$4" And Target.Value = "" Then
Target.Value = Range("C1").Value
End If
End Sub

_________________
İnsanlar sadece söylediklerinden değil, söylemesi gerekirken söylemediklerinden de sorumludur.
Bir insanın zekâsı, vereceği karşılıklarla değil, soracağı sorulardan anlaşılır.

Üye ol yüklediğin dosyalar indirildikçe para kazan.


Başa Dön Sayfa başı
 Profile bak E-posta  
 

24 Mar 2011, 14:57

Çevrimdışı
 Re: Çeşitli Makro Örnekleri
Seviye 4
Kullanıcı avatarı
Kayıt: 24 Şub 2011, 22:55
İleti: 138

Sayın ExcelTürk
Güzel ve faydalı bir paylaşım. Teşekkür ederim.

_________________
Bütün ümidim gençliktedir.Mustafa Kemal ATATÜRK


Başa Dön Sayfa başı
 Profile bak  
 
Önceki iletileri göster:  Sıralama  
Yeni konu gönder Konuya cevap yaz  [ 2 ileti ] 

Tüm zamanlar UTC + 2 saat [ DST ]


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir


Bu forumda yeni konular açamazsınız
Bu forumda konulara cevap yazamazsınız
Bu forumda kendi iletilerinizi değiştiremezsiniz
Bu forumda kendi iletilerinizi silemezsiniz
Bu forumda dosya ekleyemezsiniz


Git:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB3 Türkçe: phpBB Türkiye
phpBB SEO

XHTML 1.0 Standartlarina Uygundur!  CSS 2.1 Standartlarina Uygundur!