|

Excel VBA(Makro) Kısa Kodlar 1

Bu yazıda size bazı makrolardan bahsedeceğim. Öncelikle makrolardan herşey beklenmemelidir. Excel VBA ile masaüstü yazılımlar bile yapılabilir ancak Excel bir yazılım platformu değildir. Birçok kişi userformlarla ile kafayı bozmuş durumdadır. Userform çok kullanışlıdır ancak Excel ile Excel’in ötesinde bir yazılım hayal etmek sizi hem çok yorar hem de isteğinizi karşılamaz. Büyük programlar yazmak için C#.Net kullanmanızı tavsiye ederim. C#.Net öğrenmek içinse, C’den başlayıp gelin. Uzun bir yol sizi bekliyor 🙂

Excel Makro kodları’nın temel amacı devamlı olarak yapılan işlerin otomatikleştirilmesidir. Bu kod serisinin 1. parçası aşağıdaki kodlardan oluşmaktadır. Devamı gelecek…

1) Butona Tıklayarak Alan Seçmek

Private sub Commanbutton1_Click()
Range(“A5”).Select
End Sub

 2) Butona Tıklayarak Aralık Seçmek

Private sub Commanbutton1_Click()
Range(“A5:A10”).Select
End Sub

 3) Butona Tıklayarak Tüm Satırı Seçmek

Private sub Commanbutton1_Click()
Rows(1).Select
End Sub

 4) Butona Tıklayarak Tüm Sütunu Seçmek

Private sub Commanbutton1_Click()
Columns(1).Select
End Sub

 5) Seçilen Hücreye Değer Atamak

Private sub Commanbutton1_Click()
Cells(1,5).Select
Cells(1,5).Value=”BYMMB”
End Sub

 6) Yeni Bir Sekme Eklemek

Private Sub CommandButton1_Click()
Worksheets.Add.Name = "BYMMB"
a = Worksheets.Count
Worksheets("BYMMB").Move after:=Worksheets(a)
End Sub

 7) Bir Hücrede Yer Alan Değeri MSGBOX ile Göstermek

Private Sub CommandButton1_Click()
MsgBox Range("A1")
End Sub

 8) Şart’a Bağlı MSGBOX

Private Sub CommandButton1_Click()
Dim a
a = MsgBox("A1'e BYMMB yazayım mı?", vbYesNo, "Ne yapalım?")
If a = vbYes Then
Cells(1, 1).Value = "BYMMB"
Else
MsgBox "A2'ye yazıyorum o zaman"
Cells(1, 2).Value = "BYMMB"
End If
End Sub

 9) Bir Alanda Yer Alan MİN/MAX Değerleri Bulmak

Private Sub CommandButton1_Click()
Dim a
a=Worksheetfunction.Min(Range(“A:A”))
Cells(1,2)=a
End Sub

 10) Bir Aralıkta Yinelenen Verileri Kaldırmak

Private Sub CommandButton1_Click()
Range(“A1:A50”).AdvancedFilter Action:=xlFilterCopy,CopyToRange:=Range(“B1”),Unique:=True
End Sub

 Faydalı olması dileğiyle…

Similar Posts

7 Comments

  1. çok faydalı oldu bu kodlar. çok sağolun.. benim bir sorunum var. istiyorumki butona bastığımda belirlediğim yere belirttiğim isim yazsın.. böyle bir şey mümkünmüdür? teşekkürler.

    1. SUB MAKRO1()

      ‘ MAKRO1 MAKRO


      ActiveCell.FormulaR1C1 = “BYMMB” (BYMMB YAZDIĞIN YERE DİLEDİĞİNİ YAZDIR)
      END SUB

  2. Hocam benim bi sorum olacak ben istiyorum ki kaydet düğmesine bastığımda o sayfadaki tabloyu farklı kaydet değerleri yaparak başka bir sayfadaki boş tabloya yapıştırsın

  3. Elinize sağlık hocam. Peki yeni kayıt eklerken (userform ile) örnek olarak a sütunundaki değerleri kontrol edip varsa kayıt edilecek veri ile aynıysa uyarı versin. Bunu nasıl yapabilirim.?

  4. Merhabalar bymmb,
    Konu ne zaman paylaşıldı bilmiyorum ama umarım sorumun çözümü vardır ve cevap verirsiniz. Uzunca bir süredir bir sorunun araştırmasını yapıyorum, sorun yada sorum şu; UserForm üzerinde bulunan TextBox’a girdiğim verinin sürekli olarak kayıtlı kalmasını sağlamak. Koşula bağlı bir değer, koşullarını tamamladım fakat kayıtlı kalma sorununu çözemedim. Girdiğim değerin kaydet dendikten sonra çalışma dosyası her açılışında kayıtlı kalmasını istiyorum.
    Sorunun net bir şekilde çözülmesi adına: TextBox = “Değer” şeklinde bir kod hatalı olacaktır. Çünkü bu Textboxa gireceğim değer eğer çalışma dosyası farklı bir bilgisayarda açılacaksa hata verecektir. Yani Textboxa değer atanmayacak, userform üzerinden giriş yapılıp kayıtlı kalacaktır.

  5. arkadaşlar yardım edebilirmisiniz? kod un son kısmında çıkış yapamıyor yanlış bir şey mi var?
    Dim i As Integer
    i = 3

    Dim SubTotal As Single
    Dim JobSubMax As Integer
    Dim ManMax As Integer
    Dim JobMax As Integer

    Do While Worksheets(“Sheet1”).Range(“K” & i).Value “”

    SubTotal = SubTotal + Worksheets(“Sheet1”).Range(“K” & i).Value

    If SubTotal >= 1.2 Then
    ManMax = ManMax + 1
    If JobSubMax > JobMax Then JobMax = JobSubMax
    Worksheets(“zehra”).Range(“C” & i).Value = ManMax
    Worksheets(“zehra”).Range(“D” & i).Value = JobSubMax
    Worksheets(“zehra”).Range(“E” & i).Value = i
    JobSubMax = 0
    SubTotal = 0
    Else
    JobSubMax = JobSubMax + 1
    i = i + 1
    End If

    Loop

    Worksheets(“zehra”).Range(“D” & 3).Value = ManMax
    Worksheets(“zehra”).Range(“D” & 4).Value = JobMax
    End Sub

  6. Arkadaşlar 2 sayfalı bir excel dosyam var 1. sayfada (takvim) tüm yılın günlerini içeren hücreler var. D7:AN18 e kadar. 2. sayfamda (özelgünler) ise özel günleri içeren tarihlerin olduğu hücreler var b2:b50 arası yanında ise ogünlere ait açıklamalar var c2:c50 ye kadar. Ben 2. sayfada yazdığım tarih ve karşılığına gelen açıklamayı 1. sayfadaki takvim üzerindeki tarihe denk gelen hücre üzerinde açıklama olarak görünmesini istiyorum bununla ilgili kodda yardımcı olabilirmisiniz.

Bir yanıt yazın

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

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.