İstek makroya nereden başlamalı

  • Konuyu Başlatan Miraga
  • Başlangıç tarihi
  • Cevaplar : 10
  • Gösterim : 1K

Miraga

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 May 2022
Mesajlar
1,082
Çözümler
193
Aldığı beğeni
611
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
merhabalar konu yeri burasımızdır bilemedim ama
makro öğrenmek amacı ile ufak bir araştırma yaptım ancak bir deniz derya
* ilk etapta çok karmaşık geldi başlangıç için neleri öğrenmek gerek nereden başlamalı, nereye yoğunlaşmalı, nasıl bir yol izlemeli
tecrübeli hocalarımızın kıymetli tavsiyelerini almak isterim
yardımcı olabilirseniz sevinirim

  • forumlara baktığım zaman soruların geneli hep makrolar üzerine oluyor
  • sorularımızı sağ olsun hocalarımız hızlıca dönüş yapıyor değişiklik yapmam gerektiğinde bile hazır olan makroları bile düzenlemiyoruz malesef (kendi adıma konuşuyorum ) o yüzden bazen kızdırıyor olabiliriz kusurumuza bakmayın :) buradan tekrardan emeği geçen herkese tekrardan teşekkür ederim
 

leylabalse

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Nis 2023
Mesajlar
4
Aldığı beğeni
5
Excel Versiyonu
Office 2019 TR
Bir iki sene içerisinde makroları chatgpt yazacak. Zaten şimdiden yüksek başarı oranı var. Amacın hobi ise chatgpt sana öğretir. Sıfırdan birlikte bir proje hazırlarsınız ve seni eğitir.
 

Miraga

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 May 2022
Mesajlar
1,082
Çözümler
193
Aldığı beğeni
611
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
amacım bu işi öğrenmek
chatgpt daha önce denemedim ama hazıra konmaktansa bendim bir şeyler yapmayı hedefliyordum (çok profesyonel olmasada orta seviye bilmek isterim)
 

Patron

Site Dostu
Kullanıcı Bilgileri
Katılım
6 Mar 2021
Mesajlar
2,368
Çözümler
699
Aldığı beğeni
2,760
Excel Versiyonu
Office 2021 TR
Öncelikle hiç gözünüz korkmasın.
Öğrenmek istemek ve kararlı olmak her işte olduğu gibi bunda da temel şart.
Her şeyi bilmek ve tam anlamıyla mükemmel olmak diye bişey yok zaten.
Adım adım gidecek ve hergün yeni bir şeyler öğreneceksiniz.
Size tavsiyem öncelikle kodlamada kullanılan temel kavramlar(değişken ,dizi,döngü vs.), çeşitleri, nerede ve nasıl kullanılır vs. öğrenmeniz olacaktır.
Sonrasında algoritma kurma mantığını anlamak ve userformlar ile çalışmak olacaktır.
Bunlar için youtube de eğitim videoları izleyip, anlatılanları kendiniz yapmaya çalışın.
Sitemizde yazılan kodları anlamaya çalışın.
Unutmayın ki bir sorunun birden fazla çözüm yolu olabilir.
Önemli olan en efektif, yani en hızlı ve en doğru yöntemi bulabilmektir.
 

XXLS

Yeni Üye
Kullanıcı Bilgileri
Katılım
11 Haz 2023
Mesajlar
21
Aldığı beğeni
6
Excel Versiyonu
Office 2019 TR
aslında bu makroyu hepimizin öğrenmesi gerekli ama demek ki gözümüz korkuyor
  • foruma genel baktığımda soruların büyük bir kısmı makro sorusu
  • formül soruları azınlıkla olmakla birlikte çözüme çok daha hızlı ulaşılıyor.
 

Caylak

Destek Ekibi
Kullanıcı Bilgileri
Katılım
30 Kas 2022
Mesajlar
496
Çözümler
143
Aldığı beğeni
681
Excel Versiyonu
Office 2013 TR
Merhabalar,
Konuyla ilgili ben de bir kaç şey yazayım, madem ki hortladı :)

Öncelikle kod yazmak kabaca, bilgisayarla konuşmak ve konuştuklarımızın da bilgisayar tarafından anlaşılmasını sağlamak anlamına geliyor.

Konuyu biz Excel VBA için ele alalım,
Şimdi DenemeKitap123.xls isminde bir excel çalışma kitabımız (workbook)
Bu Kitap içerisinde (Sayfa1, Sayfa2,Sayfa3 ve Sayfa4) isminde sayfalarımız olsun (worksheets)
Diyelim ki Sayfa1' in "A" sütununun "3.ncü" satırına "Merhaba" yazmak istedik.
Bunun için bilgisayarımızla konuşmamız gerekiyor. Bu konuşmayı excel vba içerisinde yerleşik bulunan kütüphaneler ile yapacağız.

Şimdi DenemeKitap132.xls isminde bir çalışma kitabımız vardı. İlk başta bunu bilgisayarımıza tanıtalım,
Dim Kitap as workbook
Set Kitap = ThisWorkbook

Yani Kitap isminde bir değişkenim var, Bu değişken bir çalışma kitabını temsil eder
Kitap ismindeki değişken Bu çalışma kitabıdır yani DenemeKitap123.xls tir.

şimdi Kitap değişkenini bilgisayarımıza anlattık, gelelim Sayfalarımıza

Dim S1 as worksheet, S2 as worksheet, S3 as worksheet, S4 as worksheet
Set S1 = Kitap.WorkSheets("Sayfa1")
Set S2 = Kitap.WorkSheets("Sayfa2")
Set S3 = Kitap.WorkSheets("Sayfa3")
Set S4 = Kitap.WorkSheets("Sayfa4")

S1 ismindeki değişken bir excel çalışma sayfasını temsil eder, S1 Kitap dosyası içerisindeki Sayfa1'dir..... gibi

Kitabımızı ve sayfamızı anlattığımıza göre hedef hücremizi ya da aralığımızı (cell,range) anlatalım bakalım

Ne demiştik "Sayfa1' in "A" sütununun "3.ncü" satırına" "Merhaba" yazdıralım.

S1.Range("A3") = "Merhaba"
ya da
S1.Cells(3,1) = "Merhaba"

Yani Kitap ismindeki çalışma kitabının S1 (Sayfa1) isimli sayfasının (Range("A3") "A" Sütununun 3. satırına ) ya da (cells(3,1) yani 3. satırın 1. sütununa )
"Merhaba" yaz.

Bu yukarıdaki basit bir örnekti sadece, burada asıl önemli olan kafamızda algoritmayı net bir şekilde oluşturup;
Daha sonra oluşturduğumuz bu algoritmayı adım adım bilgisayara anlatabilmek. Gerisi aşağıdakiler ile mümkün.

1) Değişkenler ( String, İnteger, Boolean, Double, Variant, Date gibi) ve Tanımlamalar
2) Operatör ve işleçler (=,<>,OR, NOT, AND, LIKE gibi)
3) Şartlandırmalar ( if-then-else, elseif)
4) Döngüler ( For/Next, Do/Loop, While/wend gibi)
5) Diziler

Sonuç olarak;
"Önce tarif etmesini öğreneceğiz, daha sonra bu tarifin sonucunu alacağız"
 

Miraga

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 May 2022
Mesajlar
1,082
Çözümler
193
Aldığı beğeni
611
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
öğrenmek için biraz uğraştım ama belki işlerden belkide belli bir yaştan sonra öğrenmesi zor oluyor.
ama fırsat buldukça denemekte fayda var
 

Ahmet

Destek Ekibi
Kullanıcı Bilgileri
Katılım
9 Mar 2021
Mesajlar
340
Çözümler
70
Aldığı beğeni
405
Excel Versiyonu
Office 2016 TR
Selam

Amaç 1: Önce excel hücrelerini formüller kullanarak kendinize telefon rehberi yapın. (İsimden/telefondan Kayıt Arama özelliği de olsun.)
Amaç 2: Sonra bu verileri makro kullanarak userform üzerinde tasarlayın. (Daha önce yaptığınız kayıt bulma özelliğini bu form üzerinden yapmaya çalışın. Mesela: Arama kutusuna yazılan veri, excel hücresine yazılsın, formül ile arama yaptırın, sonra çıkan sonucu hücreden form üzerindeki kutuya alın.)

Amaç 3: Daha sonra ise formül kullanmadan kod yazarak telefon rehberini oluşturmayı deneyin.



AMAÇ 1 (Örnek Tasarım)

1691148423311.png

AMAÇ 2 (Örnek Tasarım)

1691148585729.png

AMAÇ 3 (Örnek Tasarım)

1691148721869.png

Sonrası farklı amaçlar için hayal gücünüze kalmış.

1691149150310.png
 

Miraga

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 May 2022
Mesajlar
1,082
Çözümler
193
Aldığı beğeni
611
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
hocam arada youtube sayfasını aktifleştirilmesi konusunuda hortlakmakta fayda varmıdır :)
Buradaki bir çok hocamız gibi ben de VBA kodlarını hiç bir destek almadan kendi çabalarımla öğrendim. Bunu neden söylüyorum? Öyle derslere kurslara gitmenize gerek olmadığını tek başınıza da başa çıkabileceğinizi size kanıtlamak için söylüyorum.

Hayatta kendime rehber edindiğim çok güzel bir söz var "kaybettiğinde değil vazgeçtiğinde yenilirsin" VBA öğrenmek de böyle bir şey.
Kaybettiğinizde değil vazgeçtiğinizde yenilirsiniz.

Burada sorularınızı dakikalar içinde çözen bunca insanın eminim çöpe giden binlerce projesi vardır. Benim öyle oldu. Tam olarak öğrendiğimi düşündüğüm her zaman "artık biliyorum, ihtiyaçlarımı karşılayacak projeye başlamalıyım" dediğimde karşıma akılalmaz sorunlar çıkıyor çözmeye çalışırken projeyi çöpe çeviriyor ve en sonunda siliyordum. Bu insanda son derece bıkkınlık veren bir hale geliyor.
Fakat vazgeçmeyip çıkan sorunları aşmaya çalıştığınızda sorunun ne kadar da kolay olduğunu anlıyorsunuz.

Buraya kadarki yazdıklarım öğrenme psikolojinizi nasıl inşa etmeniz gerektiği ile ilgiliydi.

Gelelim öğrenmek için gerekli olanlara:
1.) Öncelikle bu işi öğrenmenin bir süreç meselesi olduğunu aklınızdan çıkarmayın.

2.) İleri düzey olmasa da bir makaleyi kabaca anlayabilecek kadar ingilizce bilmek önemli, süreci hızlandırabilmek için. (Kaynakların çoğu ingilizce)

3.) Algoritma mantığı kurmayı öğrenin. (şahsi önerim günlük hayattaki yaptığınız işlerle ilgili algoritmalar üzerinde çalışma şeklinde olabilir.) Ayrıca; İlk öğrenme açısından en popüler örnek "çay demleme" algoritmasıdır.
Hatta yapabiliyorsanız algoritmaları akış şemaları şeklinde çizin. bkz: çay demleme algoritmasına bir
Algoritma öğrenmek programlamada ne işime yarayacak? derseniz; Bilgisayarlar onlara gönderdiğimiz komutları yukarıdan aşağıya olacak şekilde okurlar. Bazı istisnalar dışında bu kural hemen hemen her programlama dilinde aynıdır. Bilgisayara, şunu yap, şunu yap, EĞER şu koşul sağlanıyorsa şunu yap, EĞER şu koşul sağlanmıyorsa şunu yapma gibi komutlar veriyoruz sadece.

4.) Daha sonra öğrenmeniz gereken şeyler ise kabaca değişkenler, öperatörler, döngüler, karar yapıları, diziler şeklinde olabilir.

5.) Başlıca şeyleri öğrendikten sonra uygulamanızın hangi koda nereden ve ne şekilde erişip erişemeyeceğini bilmeniz olacaktır. (Public Sub, Private Sub gibi kavramlar nedir bilmekte fayda var.)

6.) Yukarıdaki mesajlarda çözüm ekibimizden Caylak size kabaca bir örnek vermiş. Workbook, Worksheet gibi kodlar belirli sınıfları oluşturur. Ve bu sınıfların bir hiyerarşisi vardır.

Örnek: ws diye bir değişken tanımlayıp buna Sayfa1'i atadınız diyelim. wb diye bir değişken tanımlayıp buna Kitap1 i atadınız diyelim. ws.wb şeklinde gibi bir kullanım yapamazsınız. wb.ws gibi bir kullanıp yapmalısınız. wb içindeki ws'leri kapsar ama ws bir üstündeki wb'yi kapsamaz.

7.) Bu işin biraz daha ilerisi kendi fonksiyonlarınızı yazmaktır. "Public Sub" ya da "Private Sub" gibi kodlar belirli eylemleri yapmanıza yararken "Public Function" ya da "Private Function" gibi kodlar ise size içerisinde uygulayacağınız hesaplamalara göre size değer döndürecektir. Kabaca bir örnek verirsek:

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

8.) Biraz daha karmaşığa doğru koleksiyon, Sözlük, RegExp gibi konular öğrenilebilir.

9.) Bunun daha ilerisi kendi classlarınızı yani sınıflarınızı yazmaktır. Örnek:Workbook sınıfı gibi Worksheet sınıfı gibi.
Buraya kadar geldiğinzde tekrar yazarsınız bunun üzerine tekrar istişare ederiz. :) Bunu burada kısaca anlatabilmek pek mümkün değil. Çünkü classlar kodlama içindeki özgürlüğünüzdür. Her şekilde manipüle edebilirsiniz.

10.) Daha da ilerisi API'lerdir (Application Programming Interface) daha önce ufak bir iki deneme yaptım üzerinde ama hakkında fazlaca bir bilgiye sahip değilim.
Uzun ve yorucu bir okuma olacak ama başlangıç fikirleri açısından benim tecrübelerim bu şekilde.
 
Son düzenleme:

Miraga

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 May 2022
Mesajlar
1,082
Çözümler
193
Aldığı beğeni
611
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
Burada tecrübelerini paylaşarak yol gösteren tüm hocalarımıza teşekkür ederim
umarım en kısa zamanda bir başlangıç yapıp bu yolda ilerlemeye başlarım.
tekrardan teşekkür ederim
 

Konuyu okuyanlar

Üst