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

Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
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...
 
Katılım
6 Şubat 2005
Mesajlar
1,467
koda aşağıdaki gibi "step" parametresini girin
for a=1 to 15 step 2
.............
next
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
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:
Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
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...
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
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
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
İş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
 
Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
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
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
İş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?
 
Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
03-08-2025
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...
 
Üst