Excelde Basit Makro Uygulamaları

Makroyu uygulamak için alttaki adımları takip edin.

  1. Excel uygulamasını başlatın.
  2. Araçlar > Makro menüsünden Makrolar alt başlığına tıklayın.
  3. Açılan pencerede Makro adına herhangi bir şey yazıp Oluştur butonuna tıklayın.
  4. Bu durumda Visual Basic sayfası açılacaktır. Bu sayfada gördüğünüz her şeyi silip yukarıdaki makro kodunu olduğu gibi bu sayfaya yapıştırın.
  5. Bu işlemden sonra Visual Basic sayfasının üst kısmındaki butonlardan Excel simgesi olana tıklayıp Excel çalışma sayfasına dönün.

Çalışma sayfasını kaydedin. Makro, çalışma sayfası ile birlikte kaydedilir.


BASİT MAKRO ÇALIŞMALARI

Alttaki makro A1 ve A2 hücrelerine yazılan rakamları toplayıp 2’ye böler.

Sub topla_böl()
Range("C1") = (Range("A1") + Range("A2")) / 2
End Sub

Alttaki makro A1 ile A10 hücrelerine girilen rakamları B1 hücresine toplam olarak yazar.

Sub Topla()
[B1].Value = Application.Sum([A1:A10])
End Sub

Alttaki makro D1 hücresime A1 ve B1 hücrelerindeki sayıların çarpımını yazar.

Sub Carp()
Range("D1") = Range("A1") * Range("B1")
Range("D1").Formula = "=(A1 * A1)"
End Sub

Alttaki makro ilk sayfayı aktif eder, A3 hücresine 5 yazıp, A4 hücresine formül oluşturur.

Sub degerformul()
Worksheets(1).Activate
ActiveSheet.Range("A3").Value = 5
ActiveSheet.Range("A4").Formula = "=A5+B8"
End Sub

Alttaki makro ile aktif sayfadaki formülleri ve toplam formül sayısını mesaj kutusunda gösterebilirsiniz.

Sub formullerim()
Dim R As Integer
R = 0
Range(Cells(1, 1), Selection.SpecialCells(xlLastCell)).Select
For Each Cell In Selection
If Left(Cell.Formula, 1) = "=" Then
R = R + 1
End If
Next Cell
Selection.SpecialCells(xlFormulas, 23).Select
MsgBox "Toplam " & R & " Formül " & _
ActiveSheet.Name & " Adlı Sayfada Bulundu"
End Sub

Alttaki makro aktif sayfadaki formülleri bulup yeni sayfada listeler.

Sub formullistele()
Dim FormulaCells As Range, Cell As Range
Dim FormulaSheet As Worksheet
Dim Row As Integer
' Create a Range object for all formula cells
On Error Resume Next
Set FormulaCells = Range("A1").SpecialCells(xlFormulas, 23)
' Exit if no formulas are found
If FormulaCells Is Nothing Then
MsgBox "No Formulas."
Exit Sub
End If
' Add a new worksheet
Application.ScreenUpdating = False
Set FormulaSheet = ActiveWorkbook.Worksheets.Add
FormulaSheet.Name = "Formulas in " & FormulaCells.Parent.Name
' Set up the column headings
With FormulaSheet
Range("A1") = "Address"
Range("B1") = "Formula"
Range("C1") = "Value"
Range("A1:C1").Font.Bold = True
End With
' Process each formula
Row = 2
For Each Cell In FormulaCells
Application.StatusBar = Format((Row - 1) / FormulaCells.Count, "0%")
With FormulaSheet
Cells(Row, 1) = Cell.Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
Cells(Row, 2) = " " & Cell.Formula
Cells(Row, 3) = Cell.Value
Row = Row + 1
End With
Next Cell
' Adjust column widths
FormulaSheet.Columns("A:C").AutoFit
Application.StatusBar = False
End Sub

Alttaki makro aktif hücredeki formülü mesaj kutusunda gösterir.

Sub AddressFormulasMsgBox() 'Displays the address and formula in message box
For Each Item In Selection
If Mid(Item.Formula, 1, 1) = "=" Then
MsgBox "The formula in " & Item.Address(rowAbsolute:=False, _
columnAbsolute:=False) & " is: " & Item.Formula, vbInformation
End If
Next
End Sub

Alttaki makro seçtiğiniz hücrelerdeki formülleri açıklama olarak yazdırır.

Sub formulacikla()
Dim cell As Range
Selection.ClearComments
For Each cell In Selection
If cell.HasFormula Then
cell.AddComment cell.Formula
cell.Comment.Visible = False
cell.Comment.Shape.TextFrame.AutoSize = True
End If
Next cell
End Sub

Alttaki makro hücrelere verilen isimleri siler.

Sub DeleteRangeNames()
Dim rName As Name
For Each rName In ActiveWorkbook.Names
rName.Delete
Next rName
End Sub

Alttaki makro B1:G13 hücreleri arasındaki verileri 0 (sıfır) yapar.

Sub ResetTest1()
For Each n In Range("B1:G13") ' Substitute your range here
If n.Value <> 0 Then
n.Value = 0
End If
Next n
End Sub

Alttaki makro aktif hücreye girilen rakamları statusbarda toplar.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim myVar As Double
myVar = Application.Sum(Columns(Target.Column))
If myVar <> 0 Then
Application.StatusBar = Format(myVar, "###,###")
Else
Application.StatusBar = False
End If
End Sub

Alttaki makro Toplam formülünü her defasında bir alta toplar.

Sub Addieren()
Dim rng As Range
Set rng = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
rng.Formula = "=SUM(A1:A" & rng.Row - 1 & ")"
End Sub

VBA yazılan formüllere kesin başvuru işareti koymak için kullanılan kodlar ($A$4)

Sub VariableInFormel()
Dim iCol As Integer
iCol = Range("B1").Value
Range("B2").Formula = _
"=SUM(R1C" & iCol & ":R100C" & iCol & ")"
End Sub 

Makroları kendi ihtiyaçlarınız doğrultusunda değiştirebilir ve geliştirebilirsiniz.

TiTaNiC

İnternet ortamında hobi amaçlı yayınladığı içeriklerle kullanıcılara doğru bilgilere ulaştırmayı ve eğlendirmeyi hedeflemektedir...

İlgili içerikler

8 Yorum

  1. merhaba,
    teknolojiden biraz uzağım, sirketim için excelde rahatca kullanacagım yazıllara ihtiyacım var. ücreti mukabilinde yardımcı olursanız sevinirim.

  2. Excel de bir numara girdiğimde örnek:”8080″ otomatik olarak oraya yazı yazmasını istiyorum. örnek:”bimeks ankara vb.” bunu hangi tür aratma ile bulabilirim teşekkürler.

    1. Örneğin A1 hücresine 8080 yazın ve istediğiniz hücreye de şu formülü girin.

      =EĞER(A1=8080;”Bimeks Ankara”)

      A1 hücresine 8080 girdiğinizde formülün olduğu hücrede Bimeks Ankara yazacaktır. Eğer farklı değer girdiğinizde YANLIŞ sonuç döndürmek yerine A1 hücresindeki değeri yazdırmak isterseniz formülü şöyle düzenleyin.

      =EĞER(A1=8080;”Bimeks Ankara”;A1)

      8080 dışında boş görünmesini isterseniz formül şu şekilde olmalı.

      =EĞER(A1=8080;”Bimeks Ankara”;””)

  3. Merhaba Hocam;

    Google e tabloda A1 den F10 kadar hücrelerde verilerim var, 11. satıra yeni veri eklediğimde önce D sütununa, sonra C sütununa, daha sonrada B sütununa göre OTOMATİK OLARAK (küçükten büyüke yada a dan z ye) sıralatmak istiyorum. bununla ilgili nasıl bir makro oluşturabiliriz.

  4. excelde makro çalısması yapıcagm fakat çok aciill tam olarakda
    nasıl yapıcagmı bilmiyorum yardımcı olursanız çok sevinirim.tesekkürler

  5. merhaba BEN BİR ÇALIŞMA KİTABINDAKİ BIR SATIRDAKİ BİLGİLERİ WORD SAYFASINA ATMAK İSTİYORUM BUNUNLA İLGİLİ BİR MAKRO YAZABİLEN BİRİSİ ÇIKAR MI BİLMİYORUM
    AÇIKLAMAK GEREKİRSE EXCELDE A1 HÜCRESİNDEKİ VERİYİ WORDE BAŞLIK OLARAK KULLANMAK İSTİYORUM A2 İSE WORD DE 2 . SAYFAYA BAŞLIK OLRAK YAZMAK İSTİYORUM İNŞAALLAH ANLAŞILMIŞTIR TEŞEKKÜRLER

  6. Merhaba arkadaşlar excel’de etiket yapıyorum ama her defasında yazmak zorunda kaldığım etiketin aldığım çıktı başına her artan numarasını baştan yazmak yüzünden işlerim aksıyor bana bunun için çıktıı aldıkça otomatik olarak artan bir excel örneği için yardımcı olabilirmisiniz? yardımınız için şimdiden çok teşekkür ederim beni büyük bir dertten kurtarmış olacaksınız.

    1. Hocam söylemek istediğinizi tam olarak anlayamadım. Sorularınızı excel dosyaları veya ekran görüntüleri ile desteklerseniz daha iyi anlaşılır.

      Artan numara için A1 hücresine rakamı girin. A2 hürcesine =A1+1 yazın ve aşağı doğru sürükleyin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu