• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

for-next üzerine bir kaç soru...

  • Konbuyu başlatan Konbuyu başlatan aliakgul
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Merhaba arkadaşlar,
Döngü oluştururken takıldığım bir kaç noktayı paylaşmak istiyorum:
1)
Kod:
   for a=1 to 15
  .............
  next
Burada a= 1,3,5,7,9,11,13,15 olarak uygulansın istiyorum.Yani a=1'den 15'e bir atlamalı gitsin.

2)
"TES","TSS","THS","TİS" isimli çalışma sayfalarım var.
Oluşturmak istediğim döngüde, "TES" sayfasını seçecek, kodları uygulayacak, "TSS" sayfasını seçecek, kodları uygulayacak,...bu şekilde yukarıda belirttiğim sayfalarda aynı işlem yapılmış olacak.
Teşekkür ederim...
 
koda aşağıdaki gibi "step" parametresini girin
for a=1 to 15 step 2
.............
next
 
Selamlar...
Tahmini yazıyorum. Daha net bir yanıt için küçük bir örnek ekleyebilirsiniz.
x değişkenine sayfaları tanımladım. Step 2 2'şer ilerlemesini sağlıyor, vb.
For x = 1 To Sheets.Count
for a=1 to 15 Step 2

Sheets(x).Cells(a,"b") = 1

next
next
 
Son düzenleme:
Sn. omerceri, Sn. leumruk, parametre için teşekkür ederim.
Sn leumruk bu iki sorudaki döngüler farklı işler.Yani birbiriyle bağıntılı değil. Ayrıca Sheets.Count şeklinde tanımlama yaparsam sayfa isimleri olarak "TES","TSS","THS","TİS" isimlerini değil sayfa numaralarını kullanıyor.Ki, bu da farklı sayfalar çağırmasına neden oluyor.

Not: Çalışma kitabımdaki sayfalar bunlardan ibaret değil...
 
Dağınık sayfalarda uygulayacaksanız, döngünün içinde, sayfalarınızı tek tek tanımlayabilirsiniz. Örnek olarak boş bir çalışma kitabında örnek kodu deneyebilirsiniz. b sütununda 2'şer arayla 1 yazar.
Eğer anladığım doğruysa aşağıdaki kodu uygulayabilirsiniz.
Sub dene()
For a = 1 To 15 Step 2
Sheets("Sayfa1").Cells(a, "b") = 1
Sheets("Sayfa2").Cells(a, "b") = 1
Sheets("Sayfa3").Cells(a, "b") = 1
Next
End Sub
 
İşlemleri yapacağınız sayfaları Array kısmının içine ekleyip yapabilirsiniz. İşlemlerin yapılmayacağı sayfalar bir iki tane önceki kodlara ise If Not Sheets(i).Name="ANA" Then şeklinde bir satırda ekleyebilirsiniz.
Kod:
Dim sf()
sf = Array("TES", "TSS", "THS", "TİS")
For i = 0 To UBound(sf)
Sheets(sf(i)).Select
'İşlemler
Next
 
NOT:BİRİNCİ SORUN GİDERİLDİ...


"TES","TSS","THS","TİS" isimli çalışma sayfalarım var.
Oluşturmak istediğim döngüde, "TES" sayfasını seçecek, kodları uygulayacak, "TSS" sayfasını seçecek, kodları uygulayacak,...bu şekilde yukarıda belirttiğim sayfalarda aynı işlem yapılmış olacak.

Arkadaşlar, bu ikinci sorunun birinci ile bir ilgisi yok.Yani step olayı buna uygulanmayacak.
Şöyle diyelim:
Kod:
sub gorev()
sayfa("TES").select
 .....iş.......
sayfa("TSS").select
 .....iş.......
sayfa("THS").select
 .....iş.......
sayfa("TİS").select
 .....iş.......
end sub
 
İşlemleri yapacağınız sayfaları Array kısmının içine ekleyip yapabilirsiniz. İşlemlerin yapılmayacağı sayfalar bir iki tane önceki kodlara ise If Not Sheets(i).Name="ANA" Then şeklinde bir satırda ekleyebilirsiniz.
Kod:
Dim sf()
sf = Array("TES", "TSS", "THS", "TİS")
For i = 0 To UBound(sf)
Sheets(sf(i)).Select
'İşlemler
Next

Bunu denediniz mi?
 
Tebrik ederim, kodlarınız işe yaradı. Elinize,emeğinize sağlık...
Süreç içinde herhangi bir sorun olursa bildiririm. Tekrar teşekkürler...
 
Geri
Üst