Makrolar Hakkinda Bİlgİ

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Değerli arkadaşlar,
excel de yeniyim. Ama beni iyi sardı.
Makrolarla uğraşıyorum.
Basit makrolar üzerinde değişiklik yaparak mantığını çözmeye çalışıyorum. Ama hiç yardımsız olmuyor.
Sizden ricam şu makrodaki anlamadıklarımı açıklayabilir misiniz?
AYRICA MAKROLARIN AÇIKLANDIĞI BİR KİTAP, CD VB. ÖNEREBİLİR MİSİNİZ?

Şimdiden teşekkürler!!!

Örneğin;
Aşağıdaki makro, aktif olan sütuna göre diğer sütunlarla birlikte satırları sıralıyor.
Mesela; If (C3) başlangıç noktası mı? Yanındaki 1 Then neyi ifade ediyor?

Range(Cells(4, E) deki 4 ve E neyi ifade ediyor?
Cells(10, "K")) daki 10 ve K neyi ifade ediyor? K niçin tırnak içinde? Değişmez olduğunu mu gösteriyor?
Key olarak verilen (4,SÜTUN) ve Order1=xlAscending ifadesindeki xlAscending kavramının anlamı nedir?
xlDescending nedir?

Bunları yazarken de işin doğrusu, bu tip soruların forumun kurallarına uyup uymadığını düşünyorum. Umarım yanlış yapmamışımdır.
Ama bazılarını öğrenirsem oradan yararlanarak başkalarını da ben çözebileceğime inanıyorum.

Sub SIRALA()
SÜTUN = ActiveCell.Column
If [C3] = 1 Then
Range(Cells(4, "E"), Cells(10, "K")).Sort Key1:=Cells(4, SÜTUN), Order1:=xlAscending
Else
Range(Cells(4, "E"), Cells(10, "K")).Sort Key1:=Cells(4, SÜTUN), Order1:=xlDescending
End If
End Sub


Arkadaşlar biraz fazla oluyorum galiba ama yine de aşağıdaki makroyu da yazıyorum.
Açıklanması konusunda yardımlarınızı bekliyorum.

Public Sub Aktar()
j = 1
Aranan = InputBox("Aktarılacak Değeri Giriniz :")
If Aranan = "" Or False Then Exit Sub
Aranan = UCase(Aranan)

Range("D2:E65536").ClearContents

For i = 1 To [A65536].End(3).Row
If UCase(Cells(i, "B")) = Aranan Then
j = j + 1
Cells(j, "D") = Aranan
Cells(j, "E") = Cells(i, "A")
End If
Next i
End Sub



sub dağıt()
satır = 1
satır2 = WorksheetFunction.CountA(Range("A:A"))
For i = 1 To satır2
If Cells(i, 2) = "ALP" Then
satır = satır + 1
Cells(satır, 4) = "ALP"
Cells(satır, 5) = Cells(i, 2).Offset(0, -1)
End If
Next
end sub

ARKADAŞLAR AYNI ÇALIŞMA KİTABI İÇİNDE BİRDEN FAZLA MAKRO KULLANILABİLİR Mİ? KULLANILABİLİRSE MODÜL İÇİNE İKİ MAKROYU DA ALT ALTA YAZMAK YETERLİ Mİ? YOKSA BAŞKA BİR İŞLEM YAPMAK GEREKİYOR MU?
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,
Oradaki 1 C3 hücresi 1'e eşitse anlamındadır.
cells(4,"E") 4. satır E kolonudur.
xlascending azalan,xldescending sıralamada artan anlamındadır.

Aktar makrosunda önce bir Inputbox çıkıyor.Buraya girilen değere Aranan ismi veriliyor.Yani excel bu satırdan sonra artık Inputbox'a girilen değeri Aranan kelimesiyle eşdeğer tutuyor.Eğer Inputbox'a bir değer girilmediyse Exit sub yani makrodan çıkılıyor.Aslında bunlar basit bir İngilizce sözlükte de bulunabilecek ifadeler.

Aranan = UCase(Aranan) 'Değer büyük harf yapılıyor.

Range("D2:E65536").ClearContents 'D2:E65536 arasındaki veriler siliniyor

For i = 1 To [A65536].End(3).Row' i'ye 1 den 65536'ya kadar değer veriliyor
If UCase(Cells(i, "B")) = Aranan Then ' İlk adımda i 1'e esşit olduğundan,B1 hücresindeki verinini büyük harfe çevrilmiş hali Aranan'a eşitse..
j = j + 1 'j'ye 1 değeri verilmişti.şimdi 1+1 ,j=2
Cells(j, "D") = Aranan ' D2 hücresinin değeri Aranan'a eşit.Yani oaraya da aynı değer giriliyor.
Cells(j, "E") = Cells(i, "A") 'E2 = A1
End If ' yukarıda açılan If (eğer) in sonu
Next i ' Bir sonra ki i.(eğer bir koşul konuşmazsa 65536 olana kadar bu döngü döner)
End Sub 'Makro bitti
*******************************************************

sub dağıt()

satır2 = WorksheetFunction.CountA(Range("A:A"))'A sütunundaki dou hücrelerin sayısı.

Cells(satır, 5) = Cells(i, 2).Offset(0, -1)'offset ifadesinden önceki hücrenin bulunduğu satırın(0) bir solundaki sütun(-1)


Excel ve VBA'nın yardımını kullanarak bunlardan daha geniş açıklamalar bulabilirsiniz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
..........Bunları yazarken de işin doğrusu, bu tip soruların forumun kurallarına uyup uymadığını düşünyorum. Umarım yanlış yapmamışımdır.
Ama bazılarını öğrenirsem oradan yararlanarak başkalarını da ben çözebileceğime inanıyorum.
Yanlış yapmanız sözkonusu değil, bizim istediğimiz tam sizin yaptığınızdır. Önce gayret edip öğrenmeye çalışacak yalnızca takıldığınız yerleri bize soracaksınız. Bu sebeple sizi tebrik ederim.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Teşekkür

Sayın bedersu,
Bilgileriniz için çok teşekkür ederim.
Göndermiş olduğunuz bilgilerle deneme yapıp, yapıp yapamadığım ile ilgili olarak kendimi test edemedim.
Ama inanıyorum ki mutlaka yararlanacağım. Bir gün makrolarla ilgili iyi bir şeyler yapmayı öğredğimde bu ismi hiç unutmayacağım.

Sayın leventm,
Forumun yönecisi olarak vermiş olduğunuz cesaretten dolayı size de çok teşekkür ederim.
İnanın ki bu sitede en uzun süre kalanlardan biriyim. Amacım daha iyisini öğrenmek ve kendimi geliştirmek.
Ama bazen soracağım soru çok basit bir soru olabilir diye yazmaya da çekiniyorum doğrusu.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,900
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Ama bazen soracağım soru çok basit bir soru olabilir diye yazmaya da çekiniyorum doğrusu.

Bence hiçbir soru basit değil çünkü herbiri daha ileri bir aşama için basamak teşkil ediyor.

Çekinmenize gerek yok,sorarak ve deneyerek öğrenebilirsiniz. Burası zaten paylaşım forumu ve herkes özveri ile bildiği kadarı ile yardımcı oluyor.

Saygılarımla.İyi çalışmalar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn sefkatim

Çekinecek hiç birşey yok, biz hiç kimseyi çok basit soru soruyorsun diye bugüne kadar asla küçümsemedik. Zaten bunada hakkımız yok, hepimiz aynı yollardan geçtik öyle değilmi.

Bizim beklentimiz sadece hazıra konmayıp, sizin gibi gayret sarfedilip sorunun öyle sorulmasıdır. Endişeniz olmasın bu kadar çabaladıktan sonra sorulan sorular hiç bir zaman cevapsız kalmayacaktır.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Arkadaşlar günaydın

Bende özür dileyerek kendi fikrimi beyan etmek istiyorum. Bizler yeni öğrenenler için sorularımıza içtenlikle cevap veren tüm arkadaşlarımızdan verdikleri cevaplarda kullandıkları kodları ve formülleri örneğin aşağıdaki şekildeki gibi kodların sonlarına ne yapılmak istendiğini belirtmeleri halinde bizlerin hem bu işin mantığını kavrayabileceğimizi, hemde daha çabuk öğrenebileceğimizi düşünmekteyim. Lütfen çok şey istediğimi düşünmeyin.

Aranan = UCase(Aranan) 'Değer büyük harf yapılıyor.
Range("D2:E65536").ClearContents 'D2:E65536 arasındaki veriler siliniyor


Tüm emeği geçen arkadaşlarımıza ve hocalarımıza Saygılarımı sunuyorum

Kolay gelsin
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Arkadaşlar,
Sayın leventm ve Sayın Ali'nin de dediği gibi bu sitenin kuruluş amacı zaten başta Excel olmak üzere çeşitli program ve konular hakkında bilgi sahibi olmak isteyen arkadaşalra yardımcı olmak.Bu siteye iki tip insan girer.Yardım almak isteyen ve yardım etmek için (arada tatlı bir rekabet bile var) giren arkadaşlar.O yüzden özür dilemenize asla gerek yok.
Sayın komutan63,
Sizin isteğiniz de aslında mantıklı ama kodları yazmak için tabiri caizse zamanla yarışan arkadaşlar için bu konu unutulabilecek bir şey.Yani açıklama yazmak unutulabilir.Fakat yine de güzel bir fikir bence.Bundan sonraki kodlarda şahsım adına açıklama yazmaya çalışırım.Ama dediğm gibi unutmazsam :) .
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Arkadaşlar,
Sayın leventm ve Sayın Ali'nin de dediği gibi bu sitenin kuruluş amacı zaten başta Excel olmak üzere çeşitli program ve konular hakkında bilgi sahibi olmak isteyen arkadaşalra yardımcı olmak.Bu siteye iki tip insan girer.Yardım almak isteyen ve yardım etmek için (arada tatlı bir rekabet bile var) giren arkadaşlar.O yüzden özür dilemenize asla gerek yok.
Sayın komutan63,
Sizin isteğiniz de aslında mantıklı ama kodları yazmak için tabiri caizse zamanla yarışan arkadaşlar için bu konu unutulabilecek bir şey.Yani açıklama yazmak unutulabilir.Fakat yine de güzel bir fikir bence.Bundan sonraki kodlarda şahsım adına açıklama yazmaya çalışırım.Ama dediğm gibi unutmazsam :) .
Sn:bedersu
Merhabalar

İlginize teşekkür ederim. Ancak şöyle bir durum oluşuyor. Örneğin bir soru sorduğumuzda sorunun cevabı geliyor ve işimiz görüldü diye bakıyoruz aslında böyle olmayıp öğretici açıklamalar olursa (önceki yazımda olduğu gibi) kesinlikle aynı tip sorularında sona ereceğini düşünüyorum. Ayrıca başıma yakın zamanda şöyle birşey geldi bir soru sordum cevabı geldi hocalarımızdan sağolsunlar ama üye arkadaşlarımızdan birisi şunu yazmıştı . Siz çok güzel cevabı verdiniz sorun çözüldü. Ancak (hocaya hitaben) siz balık tutup Sn: Komutana verdiniz halbuki balık tutmayı öğretmek daha doğru olmazmı diye bir serzenişte bulunmuştu ve bana göre de çok doğruydu. Gerçekten de balık tutmayı öğrenmek isterim.

Saygılar

Kolay gelsin
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Bir deneme, bakalım işe yarar mı?

Kodları yazmak daha kolay oluyor :)
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Bir deneme, bakalım işe yarar mı?

Kodları yazmak daha kolay oluyor :)
Selamlar

Necdet abi bu dosyayı daha öncede indirip incelemiştim. Şimdi birde açıklamaları eklemişsiniz. Çok teşekkürler.

Saygılar sunuyorum
 
Üst