Sitemize Hoşgeldiniz

Türkiye'nin en geniş özeliklere sahip forumu olan ExcelDestek.Com üzerinde soru sorabilmek, daha önceki sorulan sorulara, açılan konulara cevap yazabilmek, puan kazanabilmek, kazandığınız puanlar ile dosya indirebilmek ve çok daha fazla özellikten yararlanabilmek için sitemize üye olunuz.
Hemen Üye Ol ya da Giriş Yap

Sorun Cevaplayalım

Excel'e dair sorularınızı sorun, cevaplayalım.

Çözümlenmiş Sorular

Kullanıcılarımızın sorularını ve sunduğumuz çözümleri inceleyin.

Destek Ekibimiz Sizlerle

Ücretli destek ve özel hizmet talep edebilirsiniz.

  • Web sitemizi "REKLAMSIZ" olarak ziyaret etmek ister misiniz?
    Gerek sitemize destek, gerekse de reklam görmeden sitemizde gezinmek isterseniz, HESAP YÜKSELTME sayfasından SADECE 15-TL'ye 1 yıl boyunca ÜCRETLİ ÜYELİK almanız yeterli olacaktır.
    Detaylı bilgilendirme için lütfen buraya tıklayınız!

    REKLAMSIZ FORUM KULLANMAYI TERCİH EDECEK ÜYELERİMİZE, https://www.exceldosyalari.com İSİMLİ SİTEMİZDEN 3 AYLIK ÜYELİK PAKETİ HEDİYE EDİLECEKTİR.

Makrolar Excel For Next Döngüsü

AhmetRasim

Forum Yönetimi
Yönetici
Site Yöneticisi
SMS Onaylı
Katılım
15 Eki 2018
Mesajlar
97
Excel Versiyonu, Dili
Excel 2019 TR

Reputation:

For Next Döngüsü, en sık kullanılan döngülerdendir ve belirlenen sınırlar içinde, verilen koşullara göre işlemleri sırası ile gerçekleştirir.

For Next Döngüsünün Yapısı

For [degisken_ismi] = [baslangic_sayısı] To [bitis_sayısı]

>İşlemi gerçekleştirecek olan diğer kodlar…<

Next [degisken_ismi]

*İşlemi gerçekleştirecek olan diğer kodlar For ile Next arasına yazılır.

Örnek olarak;

Excel Çalışma Sayfasında A1 hücresinden A100 hücresine kadar sıra numarası vermek için;

Sub for_dongusu()

For x = 1 To 100

Cells(x,1) = x


Next x

End Sub


yapısını kullanabiliriz. Satırların açıklaması şu şekilde;

  • Sub for_dongusu() : Çalıştırılacak olan makronun ismidir. Makrolar Sub - End Sub yapısı arasına yazılmak zorundadır. Sub yazdıktan sonra makro için bir isim belirlenir.
  • For x = 1 To 100 : 1 den 100 e kadar ilerle demektir.
  • Cells(x,1) = x : For satırında belirlenen değişkenin (x in) aldığı sayıyı Hücre değerine atama işlemidir.
  • Makro çalıştığında x = 1 olacak ve Cells(x,1)=x ifadesi Cells(1,1)=1 olacak. x 100 olana kadar bu işlem bu şekilde devam edecek;
    Cells(1,1)=1, Cells(2,1)=2, Cells(3,1)=3 …… Cells(100,1)=100 de işlem sonlandırılacak.
  • Not: Cells(1,1)=A1 , Cells(2,1)=A2 …. Cells(100,1)=A100 dür.
  • Next x : x değişkenini birer arttırarak devam et, yani bir sonraki x değerine geç demektir. x=100 olduğunda End Sub satırına geçer.
  • End Sub : Belirlenen şartlar tamamlandığında ilgili makronun bittiğini belirten satırdır.
Makro çalıştığında;
  • A1 = 1
  • A2 = 2
  • .
  • .
  • A100 = 100 olacak şekilde 1’den 100’e kadar sayıları yazacak ve 100 sayısına ulaştığında işlem sonlanacak.
Faydalı olması dileği ile.
 

Admin

Kurucu
Yönetici
Kurucu
VIP
SMS Onaylı
Katılım
1 Eki 2018
Mesajlar
882
Yaş
41
Web Sitesi
www.orkmes.com
Excel Versiyonu, Dili
Excel 2019 EN

Reputation:

Bu konuya değindiğiniz için teşekkürler.
Devamını bekliyoruz :)
 

LordKisame

Yeni Üye
SMS Onaylı
Kullanıcı
Katılım
13 May 2019
Mesajlar
92
Excel Versiyonu, Dili
Excel 2019 TR

Reputation:

Teşekkürler. Ben gibi yeni başlayanlar için faydalı oldu. Çalışmalarımda sıkça ihtiyaç duyduğum bir özellik döngüsel işlemler.
 

AhmetRasim

Forum Yönetimi
Yönetici
Site Yöneticisi
SMS Onaylı
Katılım
15 Eki 2018
Mesajlar
97
Excel Versiyonu, Dili
Excel 2019 TR

Reputation:

Merhabalar;
For Next Döngüsü için bir örnek ekleyelim:)

Örneğimiz; döngü ile Çalışma Kitabına, hücreden isim alarak Yeni Çalışma Sayfası eklemek olacak.

Not: Sayfalara verilecek isimlerin, Sayfa1 isimli sayfanın A sütununda olduğu varsayılmıştır.

Örnek kodumuz şu şekilde;

Sub yeni_sayfa_ekle()
For x = 1 To Sayfa1.Range("A65536").End(xlUp).Row
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = Sayfa1.Cells(x, "A")
Next x

End Sub

*Öncelikle şu satırı açıklayalım: Sayfa1.Range("A65536").End(xlUp).Row
*** Sayfa1’de A sütununda 65536. satırın üzerinde kalan hücreler içerisinde Dolu olan Son hücrenin satır numarasını verir.

*Bu satır For döngüsünün [bitis_sayısı] olarak kullanılacaktır.
Not: Sayfa1.Range("A65536").End(xlUp).Row satırını Sayfa1.Range("A" & Rows.Count).End(xlUp).Row şeklinde de kullanabilirsiniz.

Satırların açıklaması;

  • For x = 1 To Sayfa1.Range("A65536").End(xlUp).Row : 1 den başla Sayfa1 A Sütununda Dolu Olan Son Hücrenin satır numarasına kadar ilerle.
  • Sheets.Add After:=Sheets(Sheets.Count) : Bu satır ile Çalışma Kitabına Yeni Çalışma Sayfası Eklenir. Satırdaki bölümlerin anlamları;
    • Sheets kelime anlamı Sayfalar
    • Add kelime anlamı Ekle
    • After kelime anlamı Sonra
    • Count kelime anlamı Sayı
Sayfa1’den sonra (yani Sayfa1’in sağına), Sayfa numaralarına göre Yeni Çalışma Sayfası Ekle (yani Sayfa2 varsa yeni sayfa olarak Sayfa3 ü ekle, Sayfa3 varsa Sayfa4 ü ekle vb…)

  • ActiveSheet.Name = Sayfa1.Cells(x, "A") : Yeni eklenen sayfa Aktif olarak açılır. Bu satır ile Sayfa1’in A sütununda x’inci satırdaki hücrede yazan değer Aktif Sayfanın İsmi olarak belirlenir.
Döngü başladığında x = 1 olacağı için, Cells(x, "A") kısmı Cells(1, "A") şekline gelecek ve A1 hücresinin değerini Yeni Sayfanın İsmi olarak belirleyecek.
  • Next x satırı ile de Döngü tekrar başa dönecek, x = 2 olacak ve Cells(2, "A") ile A2 hücresinin değerini Yeni Sayfanın İsmi olarak belirleyecek.
Bu şekilde A sütunundaki son dolu hücreye kadar ilerleyip, sayfa ekleyecek ve hücre değerini sayfa ismi yapacak.


***Önemli Not: A sütununda, veri olan hücrelerin arasında boş hücre bulunmaması gerekmektedir.
Örnek olarak: A1 dolu, A2 dolu, A3 boş, A4 dolu... şeklinde arada boş hücre olursa, kod boş hücreye geldiğinde hata vererek sonlanır.


Faydalı olması dileği ile.
 
Üst