Konu: Excel'de Makrolarla Çalışma  (Okunma sayısı 2169 defa)

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 27 Oca 2019 17:39:40
[linkler sadece üyelerimize görünmektedir.]
başlığınızı takip ediyorum [linkler sadece üyelerimize görünmektedir.] . verdiğiniz bilgiler için teşekkürler.
ben daha önce vba6 ile uğraştığım için bana makrolar kolay geldi.

bakın bu da tek satırlık kodla yazdığım işlem hesaplama programı :)

tabi benimkinde hiçbir denetim, döngü vb yok. makro öğrenmek için sizin açıklamalarınız çok güzel.

Mesajınız için teşekkür ederim.

Ben de ilk Liberty Basic diye bir dil öğrenmiştim. Onun sayesinde makrolar bana da kolay gelmişti.

Bu arada programınızı çok beğendim :)

Not: İsmini zikrettiğim programlama dilini kimseye önermem. Visual Basic veya Python ile başlamak gerek.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 27 Oca 2019 18:23:07
Toplama Çıkarma Karışık Alıştırma Programı

Sadece toplama alıştırmaları veya sadece çıkarma alıştırmaları öğrencilere yorucu ve sıkıcı gelebilir. İkisini bir çalışmada toplamak daha kullanışlı olacaktır.




Programımızın Taslağı


for a=4 to 29 step 5 ' 4. satırdan başlayarak beşer artııyor.
   for b=4 to 20 step 4 '4. sütundan başlayarak dörder artıyor.


   ' Burada değeri 1 veya 2 olabilecek bir değişken oluşturacağız.
    hangiislemiyapalim=sayiuret(2,1)
   

    If hangiislemiyapalim=1 Then   'değer 1 ise toplama yapalım.
   
    ' toplama işlemi için sayılar üretilecek ve işaret konulacak.

   End If



    If hangiislemiyapalim=2 Then   'değer 2 ise çıkarma yapalım.
   
     ' çıkarma işlemi için sayılar üretilecek ve işaret konulacak.

   End If



   next b
next a   




Not: Böylelikle her bir işlemden önce rastgele bir sayı üretilecek ve sayı 1 ise toplama alıştırması, sayı 2 ise çıkarma alıştırması üretilecek. Bu programda döngü ve koşulu bir arada kullandık. Sonraki dersimizde çalışmanın içine ilgili kodları ekleyeceğiz.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 27 Oca 2019 22:27:30
Toplama Çıkarma Karışık Alıştırma Programı


İlgili yerlere daha önce hazırladığımız kodların içinden toplama ve çıkarma bölümlerini ekleyeceğiz. Önce oluşturduğumuz taslağı aşağıya ekliyorum:



for a=4 to 29 step 5 ' 4. satırdan başlayarak beşer artııyor.
   for b=4 to 20 step 4 '4. sütundan başlayarak dörder artıyor.


   ' Burada değeri 1 veya 2 olabilecek bir değişken oluşturacağız.
    hangiislemiyapalim=sayiuret(2,1)
   

    If hangiislemiyapalim=1 Then   'değer 1 ise toplama yapalım.
   
    ' toplama işlemi için sayılar üretilecek ve işaret konulacak.

   End If



    If hangiislemiyapalim=2 Then   'değer 2 ise çıkarma yapalım.
   
     ' çıkarma işlemi için sayılar üretilecek ve işaret konulacak.

   End If



   next b
next a   




Şimdi 1. koşulun içine

    cells(a,b)=sayiuret(99,1)
    cells(a+1,b)=sayiuret(99,1)
    cells(a+1,b-1)="+"    ' bu satır yeni eklendi.



2. koşulun içine


YenidenSayiUret:
   cells(a,b)=sayiuret(99,1)
   cells(a+1,b)=sayiuret(99,1)

   If cells(a,b)<=cells(a+1,b) then
   GoTo YenidenSayiUret 
   End If

   cells(a+1,b-1)="-" 


kodlarını yapıştıralım.





Kodlarımızın son durumu aşağıdadır:



for a=4 to 29 step 5 ' 4. satırdan başlayarak beşer artııyor.
   for b=4 to 20 step 4 '4. sütundan başlayarak dörder artıyor.


   ' Burada değeri 1 veya 2 olabilecek bir değişken oluşturacağız.
    hangiislemiyapalim=sayiuret(2,1)
   

    If hangiislemiyapalim=1 Then   'değer 1 ise toplama yapalım.
   
    cells(a,b)=sayiuret(99,1)
    cells(a+1,b)=sayiuret(99,1)
    cells(a+1,b-1)="+"    ' bu satır yeni eklendi.

   End If



    If hangiislemiyapalim=2 Then   'değer 2 ise çıkarma yapalım.
   
YenidenSayiUret:
   cells(a,b)=sayiuret(99,1)
   cells(a+1,b)=sayiuret(99,1)

   If cells(a,b)<=cells(a+1,b) then
   GoTo YenidenSayiUret 
   End If

   cells(a+1,b-1)="-" 

   End If



   next b
next a   



Yukarıdaki kodlar ile toplama ve çıkarma işlemlerinin karışık şekilde hazırlanacağı bir program hazırlamış olduk. Faydalı olması dileğiyle.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 27 Oca 2019 22:31:51
Son hazırladığımız programı excele aktarıp uygulayabilirsiniz. Üzerinde değişiklikler yapabilir ve değişikliklerin sonuçlarını gözlemleyebilirsiniz.

Bu başlık altında, zamanında ihtiyacını duyduğum ve cevabını bulmakta zorlandığım konuları paylaşmak ve bu alanda bir günlük oluşturmak istiyorum. Şimdi veya daha sonra bu başlığı takip edip de aradığı bir soruya cevap bulan bir meslektaşım bile olsa konu amacına ulaşmış olacaktır.

Not: Excel dosyasının son hali yarın paylaşılacaktır.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 28 Oca 2019 14:06:56
Programımızın Son Hali:

Programımızda aşağıdaki bölümler (sayfalar) bulunuyor:

Toplama Alıştırmaları Sayfası

Çıkarma Alıştırmaları Sayfası

Toplama Veya Çıkarma Sayfası

Karışık Alıştırmalar

Bu sayfaları ve makrolarını inceleyin. Aralıkları, kodları vs değiştirin. Üzerinde oynamalar yapın. Sonraki derslerimizde hep bu şablonu kullanacağımız için şablona alışmaya çalışın. Kodları oynarken bozmaktan endişelenmeyin. Buradan yeniden indirebilirsiniz.

Sonraki Dersimiz

Sınıf seviyesine uygun çarpma alıştırmaları üreten bir program hazırlamak. Bilgi birikimimiz (hazır kodlarımız) arttıkça artık yeni program yazmak daha kısa zamanımızı alacak. Daha önce hazırladığımız program üzerinde ufak tefek değişiklikler yaptığımızda yeni programlara ulaşabileceğiz.

smyi

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.483
  • Teşekkür 5880
    • Çevrimdışı
  • # 29 Oca 2019 21:36:17
buyrun hocam:
aynı sayfada karışık tüm sınıflardan olmayacağı için;
"hangiislemiyapalim=sayiuret(2,1)"
for döngüsünün dışına alındı ve sınıfı kullanıcıya soruyor.


aralardaki kodlar için sadece sizin;
"
 cells(a,b)=sayiuret(99,1)
    cells(a+1,b)=sayiuret(99,1)
    cells(a+1,b-1)="+"

"
formülünüzü kullandım. +, x oldu. sınıflara göre sayıları değiştirdim.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 29 Oca 2019 21:46:05
[linkler sadece üyelerimize görünmektedir.]
buyrun hocam:
aynı sayfada karışık tüm sınıflardan olmayacağı için;
"hangiislemiyapalim=sayiuret(2,1)"
for döngüsünün dışına alındı ve sınıfı kullanıcıya soruyor.


aralardaki kodlar için sadece sizin;
"
 cells(a,b)=sayiuret(99,1)
    cells(a+1,b)=sayiuret(99,1)
    cells(a+1,b-1)="+"

"
formülünüzü kullandım. +, x oldu. sınıflara göre sayıları değiştirdim.

Ben nasıl bir hata yaptım  :-[   Düzeltmeniz için teşekkür ederim. 

smyi

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.483
  • Teşekkür 5880
    • Çevrimdışı
  • # 29 Oca 2019 21:52:18
[linkler sadece üyelerimize görünmektedir.]
Ben nasıl bir hata yaptım  :-[   Düzeltmeniz için teşekkür ederim. 
Estağfirullah hocam, sizi düzeltmeye çalışmıyordum. sadece sizin verdiğiniz kodlara ve yönergelere göre bir çalışma hazırlamak istemiştim.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 29 Oca 2019 21:57:01
Çarpma Alıştırmaları Programı

[linkler sadece üyelerimize görünmektedir.] hocamızın desteğiyle. Teşekkürlerimi sunuyorum.




Kodların Başlangıcı
  hangiislemiyapalim = InputBox("Sınıf seçiniz. (2,3,4)")
 ' Burada kullanıcı sınıf seçecek ve seçilen sınıfı değişken içine atıyoruz.

For a = 4 To 29 Step 5 ' 4. satırdan başlayarak beşer artııyor.
   For b = 4 To 20 Step 4 '4. sütundan başlayarak dörder artıyor.


   

    If hangiislemiyapalim = 2 Then 'değer 2 ise 2. sınıf için hazırlayalım.
   
   Cells(a, b) = sayiuret(10, 1)
    Cells(a + 1, b) = sayiuret(5, 0)
    Cells(a + 1, b - 1) = "x"

   End If


    If hangiislemiyapalim = 3 Then 'değer 3 ise 3. sınıf için hazırlayalım.
   
   
   Cells(a, b) = sayiuret(99, 1)
    Cells(a + 1, b) = sayiuret(10, 0)
    Cells(a + 1, b - 1) = "x"

   End If




    If hangiislemiyapalim = 4 Then 'değer 4 ise 4. sınıf için hazırlayalım.
   
    Cells(a, b) = sayiuret(999, 1)
    Cells(a + 1, b) = sayiuret(99, 0)
    Cells(a + 1, b - 1) = "x"

   End If


   Next b
Next a

Kodların Sonu

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 29 Oca 2019 21:59:59
[linkler sadece üyelerimize görünmektedir.]
Estağfirullah hocam, sizi düzeltmeye çalışmıyordum. sadece sizin verdiğiniz kodlara ve yönergelere göre bir çalışma hazırlamak istemiştim.

Ben anlatımda dalgınlıkla bir hata yapmışım. Sizin kodları görünce fark ettim. Ben ne hikmetse sınıf seviyesini kullanıcıya sormak yerine her seferinde rastgele olarak belirlemeyi seçtim. Takibiniz ve destekleriniz beni mutlu ediyor. Teşekkürlerimi sunuyorum.

yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 2. Sınıf Öğretmeni
  • İleti: 1.367
  • Teşekkür 30881
    • Çevrimdışı
  • # 10 Haz 2019 01:16:50
5 Adet Rastgele Harf Veren Program


'Bu programı geliştirerek kelime oluşturma çalışması hazırlamak için kullanabilirsiniz.




Kodların Başlangıcı
'sayı üretme fonksiyonu
Function sayiuret(UstDeger, AltDeger)
Randomize
sayiuret = Int(Rnd() * (UstDeger - AltDeger + 1) + AltDeger)
End Function







Sub HarfSecme()

'önce alfabe adında bir değişken tanımlayalım.
alfabe = "ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"


ReDim harfler(5) ' dizi tanımlanıyor



For a = 1 To 5
numara = sayiuret(29, 1) ' bir sayı numarası seçiyoruz
harfler(a) = Mid(alfabe, Int(numara), 1) ' alfabe değişkeninin seçilen sıradaki harfini alıyoruz.
Next a


AraKarakter = ",  "  'harflerin arasına gelecek ara karakter belirliyoruz.
MsgBox harfler(1) & AraKarakter & harfler(2) & AraKarakter & harfler(3) & AraKarakter & harfler(4) & AraKarakter & harfler(5) & AraKarakter



End Sub

Kodların Sonu

 

Egitimhane.Com ©2006-2023