FOR NEXT Döngüsü

Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Saygıdeğer arkadaşlar,
For Next döngüsü hakkındaki bilgilerim çok sınırlı.
Mesela şöyle bir formül ile aynı hücre içine “F2” hücresindeki değere kadar ardışık sayılar yazdırabiliriyorum.
For s = 1 To [F2]
i = ActiveCell
ActiveCell.Value = (i + 1)

Ancak ben şimdi muhtemelen yine For döngüsü ile başlayacağını tahmin ettiğim bir formül ile C sütununun 5. satırından itibaren alt satırlara doğru gruplar halinde ardışık sayılar yazdırmak istiyorum.
1. grubun ilk değeri ekli dosyada belirttiğim gibi H1 hücresinin değeri son değeri H2 hücresinin değeri olsun
2. grubun ilk değeri I1 hücresinin değeri, son değeri I2 hücresinin değeri olsun
3. grubun ilk değeri J1 hücresinin değeri, son değeri J2 hücresinin değeri olsun
4. grubun ilk değeri K1 hücresinin değeri, son değeri K2 hücresinin değeri olsun
5. grubun ilk değeri L1 hücresinin değeri, son değeri L2 hücresinin değeri olsun

Acaba bu formülü yazabilecek bir formül var mıdır?
Tüm arkadaşlara şimdiden teşekkür eder, çalışmalarında başarılar dilerim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Size yardımcı olabilmemiz için verdiğiniz bilgiler yetersiz!:cool:
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Size yardımcı olabilmemiz için verdiğiniz bilgiler yetersiz!

Sayın Evren Gizlen Hocam,
Önerinizi saygıyla karşılıyorum.
Tabi soruya cevap almanın en kolay yolu doğru ve anlaşılır soru sormak.
Anlaşılıyor ki derimi tam olarak anlatamamışım.
Ekli dosyada derdimi şekillerle biraz daha açmaya çalıştım. Umarım bu sefer sorum anlaşılmıştır.
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Ekli dosyada da örnek olarak sayıların nasıl yazılacağını gösterdim.
Renklendirme açıklama amaçlıdır. Normal dosyada renk kullanmayacağım.
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Arkadaşlar özür dilerim,
aynı dosyayı göndermişim.
Değerelerin girildiği dosyayı örnek olarak tekrar gönderiyorum.
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
acaba böyle bişeymi istiyorsunuz???

Kod:
Sub test()
For i = [H2] To [H3]
Cells(i - 5, "C") = i
Next
For i = [I2] To [I3]
Cells(i - 9, "C") = i
Next
For i = [J2] To [J3]
Cells(i - 18, "C") = i
Next
For i = [K2] To [K3]
Cells(i - 22, "C") = i
Next
For i = [L2] To [L3]
Cells(i - 32, "C") = i
Next
End Sub
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
SAYIN AYHAN ERCAN,
İlginizden dolayı çok teşekkürler,
Ancak makroyu çalıştırınca "Run-Time Error - 1004" hatası veriyor.
Yine de ilginizden dolayı teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,699
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Önerilen kodu denedim ve sorunla karşılaşmadım. Lütfen tekrar kontrol ediniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
SAYIN AYHAN ERCAN,
İlginizden dolayı çok teşekkürler,
Ancak makroyu çalıştırınca "Run-Time Error - 1004" hatası veriyor.
Yine de ilginizden dolayı teşekkürler.
Döngüde kullandığınız hücreleri kontrol ediniz boş olabilir veya sayısal değer olmayabilir.:cool:
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Değerli yorumlarından dolayı Korhan Bey ve Evren Bey'lere ayrı ayrı teşekkür ederim. Ancak ben verilen kodları Modüle sekmesine ve Sayfa1 sekmelerine ayrı ayrı yazarak makroyu oluşturmaya çalıştım ama yine de yukarıda verdiğim hata kodunu veriyor.
Ayrıca sayfa içinde verdiğim sayılar tamamen örnektir. Bu sayılar her seferinde değişecektir ve her seferinde 5 grubun hepsi de dolu olmayacak. Mesela 1 ve 2. grup dolu olup diğer gruplar boş olabilir. O zaman döngünün son bulup makrodan çıkmasını nasıl sağlarız.
Ayrıca makroları kaydettiğim dosya örneğini ekte gönderiyorum.
Katkısı olan tüm arkadaşlara şimdiden teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,699
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Örnek olarak ilk grup boş olursa C sütunundaki sıralama nasıl olacak?
İlk grubun yeri boşmu olacak?
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
İlk grup hiçbir zaman boş olmayacak.
Veri girişine İlk gruplardan başlanacak ve sürekli dolu olacak, ama verilerin değeri değişecek, ihtiyaç olmazsa diğer gruplar kullanılmayacak, takip eden gruplar yani yedek olarak duracak.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,699
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Peki bu durumda sorumu ikinci-üçüncü yada dördüncü grup için sorduğumu düşünün bu durumda bu gruplarla ilgili renklendirdiğiniz bölümler boşmu kalacak? Yada bir sonraki grup hiç boşluk bırakmadan devam edecekmi?
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Mesela elimizde 10'dan 25'e kadar yazılacak ardışık sayılı veriler var.
Önce 1. gruptaki veriler C5 hücresinden itibaren +1 artarak yazılacak.
Yazacağımız veriler bu kadar ise 2, 3, 4, 5. aralıklar tamamen boş kalacak. Bu kısımları daha sonra Satır Gizle makrosu ile ben gizleyeceğim.
Daha sonra elimizde 45'den 66'ya kadar giden ardışık sayılar varsa varsa onları 2. gruba yazacağız. 2. grubun başlangıç noktası 1. grubun bitiş noktasından hemen sonraki hücre olacak. Elimizdeki veriler bu kadar sa 3, 4, 5. grubdaki hücreler yine boş kalacak ve o satırları yine satır gizle makrosu ile gizleyeceğim.
Eğer elimizde hala veri varsa ve onların değeri de diyelimki 88'den 120'ye kadar, onları da aynı şekilde 3. gruba yazacağız veri girilmeyen aralık yine satır gizle makrosu ile gizlenecek. Eğer elimizde hala aynı şekilde veriler varsa onları da 4. ve ihtiyaca göre 5. gruba girip, listemizi oluşturacağız. Elimizdeki verilerin bittiği yerden sonraki satırlar boş kalacak ve daha sonra satır gizle makrosu ile gizleyeceğim.
Bu şekilde listeleyeceğimiz veri sayısı maksimum yaklaşık 250 adet olacak. Bu sayı daha da az olabilir. Mesela toplam 30, 50 veya 75 kadar da olabilir.
Benim burdaki amacım kendi arasında ardışık olan sayı gruplarını bir araya toplayıp girmek. Karışık olarak rakam atlayan gruplar arasındaki boş kalacak satır bırakmamak. Çünkü A sütununda sıra numarası olacak buradaki sıra numarasının bozulmaması gerekiyor.
İlginizden dolayı çok teşekkür ederim.
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
yine tam anladığımı söyleyemem. birde bu kodları deneyiniz....

Kod:
Sub test()
x = [c5].Row
For i = [H2] To [H3]
Cells(x, "C") = i
x = x + 1
Next i
For i = [I2] To [I3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
For i = [J2] To [J3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
For i = [K2] To [K3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
For i = [L2] To [L3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
End Sub
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Saygıdeğer Ayhan Ercan Kardeşim,
yine tam anladığımı söyleyemem de laf mı?
Tam istediğim gibi olmuş.
Ancak boş bırakılan grubun yerine yine bir satır işgal edilerek 0 değeri veriyor. Bunu önleme imkanı var mı?
Yine de çok çok teşekkürler.
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Saygıdeğer Ayhan Ercan Kardeşim,
yine tam anladığımı söyleyemem de laf mı?
Tam istediğim gibi olmuş.
Ancak boş bırakılan grubun yerine yine bir satır işgal edilerek 0 değeri veriyor. Bunu önleme imkanı var mı?
Yine de çok çok teşekkürler.
ben uzman değilim. sadece soruları anlayıp hem yardımcı olmaya calışıyorum hem kendimi denemeye calışıyorum. yardımcı olduysam ne mutlu bana.
0 lı soruna gelince, onu bende gördüm ama kodlar işe yarayacakmı bilmediğim için uğraşmadım. biraz deneyeyim bakalım.. uzman arkadaşlar hemen halledebilirler herhalde...
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
ben uzman değilim. sadece soruları anlayıp hem yardımcı olmaya calışıyorum hem kendimi denemeye calışıyorum. yardımcı olduysam ne mutlu bana.
0 lı soruna gelince, onu bende gördüm ama kodlar işe yarayacakmı bilmediğim için uğraşmadım. biraz deneyeyim bakalım.. uzman arkadaşlar hemen halledebilirler herhalde...

Saygıdeğer Ayhan Ercan Bey,
Ben kodları aşağıdaki gibi değiştirdim, tam istedğim gibi oldu, paylaşım amacıyla gönediriyorum.

Sub test()
Range("C5:C250").Select
Selection.ClearContents
Range("C5").Select

x = [c5].Row
For i = [H2] To [H3]
Cells(x, "C") = i
x = x + 1
Next i
If [I2] = "" Then Exit Sub
For i = [I2] To [I3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
If [J2] = "" Then Exit Sub
For i = [J2] To [J3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i

Next
If [K2] = "" Then Exit Sub
For i = [K2] To [K3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
If [L2] = "" Then Exit Sub
For i = [L2] To [L3]
x = Range("c65536").End(xlUp).Row + 1
Cells(x, "C") = i
Next
End Sub
 
Üst