Kombinasyon, sağa doğru sütuna artan

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Merhaba,

Forumda ki kombinasyon örneklerine baktım fakat kodları uyarlamakta başarı sağlayamadım.

Ben 0 - 255 arası 3'lü kombinasyon hazırlamak istiyorum,
yalnız sayı 255'e kadar geldiğinde kombinasyon sağ sütuna geçerek devam edecek şekilde nasıl hazırlayabilirim?


sütunlar yetmiyorsa eğer kaldığı yerden ikinci veya üçüncü bir sayfa oluşturarak devam edebilir mi acaba?
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Tablonun son halinin nasıl olmasını istiyorsunuz?
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Merhaba,
Yardımcı olabilecek kimse var mı?
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhana
İnceleyin.Küçük sayılarla deneme yapabilirsiniz?

Excel 2007'de:
16k (2^14) =16.384 sütun
1M (2^20) = 1.048.576 satır
sütun sayısı fazla olacaksa koda bir döngü daha eklemek lazım olacak.

Kod:
Sub kombinasyon()
mynum = Application.InputBox("Enter a number"): sut = 1
For i = 0 To mynum
   For ii = 0 To mynum
              Range(Cells(1, sut), Cells(1, sut + 2)).Select
              With Selection
                 .HorizontalAlignment = xlCenter
                 .MergeCells = True
                 .FormulaR1C1 = (sut Mod 3) + Int(sut / 3)
              End With
              
       For iii = 0 To mynum
          Cells(iii + 2, sut) = i: Cells(iii + 2, sut + 1) = ii: Cells(iii + 2, sut + 2) = iii
       Next iii
       sut = sut + 3
   Next ii
Next i
End Sub
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Merhana
İnceleyin.Küçük sayılarla deneme yapabilirsiniz?


sütun sayısı fazla olacaksa koda bir döngü daha eklemek lazım olacak.

Kod:
Sub kombinasyon()
mynum = Application.InputBox("Enter a number"): sut = 1
For i = 0 To mynum
   For ii = 0 To mynum
              Range(Cells(1, sut), Cells(1, sut + 2)).Select
              With Selection
                 .HorizontalAlignment = xlCenter
                 .MergeCells = True
                 .FormulaR1C1 = (sut Mod 3) + Int(sut / 3)
              End With
              
       For iii = 0 To mynum
          Cells(iii + 2, sut) = i: Cells(iii + 2, sut + 1) = ii: Cells(iii + 2, sut + 2) = iii
       Next iii
       sut = sut + 3
   Next ii
Next i
End Sub
Merhaba,
Elinize sağlık kod çok güzel olmuş,
peki sütun sayısı yetmediğinde ikinci bir döngü eklemek gerekli demişsiniz!
Ekleyebilir miyiz acaba?
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Tekrar merhaba
0-255 arası 3 döngü (256*256*256) exceli kasar diye düşünüyorum.
Bence bunu ado-sql ile kalıb oluşturup çözmek daha kolay olur diye düşünüyorum.Kanatimce; eklediğim tablodaki 3.sütun (C2:C257) sabit olarak dönüyor.Biz eğer bunu A2:A257 ve B2:B257 sütunlarında döngü oluşturup döngü sayısını a1:c1 e yazdırarak çözmeyi sağlıyabilirsek işlem daha kısa olur.

Sonuçta bu beni aşıyor.
Daha deneyimli arkadaşların bu konudaki görüşlerini bekliyelim derim.
 

Ekli dosyalar

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Tekrar merhaba
0-255 arası 3 döngü (256*256*256) exceli kasar diye düşünüyorum.
Bence bunu ado-sql ile kalıb oluşturup çözmek daha kolay olur diye düşünüyorum.Kanatimce; eklediğim tablodaki 3.sütun (C2:C257) sabit olarak dönüyor.Biz eğer bunu A2:A257 ve B2:B257 sütunlarında döngü oluşturup döngü sayısını a1:c1 e yazdırarak çözmeyi sağlıyabilirsek işlem daha kısa olur.

Sonuçta bu beni aşıyor.
Daha deneyimli arkadaşların bu konudaki görüşlerini bekliyelim derim.
İlginiz için teşekkürler Sayın mersilen,
Diğer görüşlere, bilgilere her zaman açığım elbette.
Dediğiniz gibi konu hakkında önerileri beklemekte fayda var.

Hayırlı akşamlar.
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Merhaba,

Sayın Haluk hocamın kodlarından alıntı yaparak kodlara şöyle bir ekleme yaptım;
Kod:
Sub kombinasyon()
mynum = Application.InputBox("Enter a number"): sut = 1
Application.ScreenUpdating = False

For i = 0 To mynum
   For ii = 0 To mynum
              Range(Cells(1, sut), Cells(1, sut + 2)).Select
              With Selection
                 .HorizontalAlignment = xlCenter
                 .MergeCells = True
                 .FormulaR1C1 = (sut Mod 3) + Int(sut / 3)
              End With
            [COLOR="Red"][B]If sut >= 16380 Then
            k = k + 1
            Set NewSh = Sheets.Add(After:=Sheets(Sheets.Count))
            NewSh.Name = "Kombinasyon-" & k
            Sheets("Kombinasyon-" & k).Select
            sut = 1
            End If[/B][/COLOR]
       For iii = 0 To mynum
          Cells(iii + 2, sut) = i: Cells(iii + 2, sut + 1) = ii: Cells(iii + 2, sut + 2) = iii
       Next iii
       sut = sut + 3
   Next ii
Next i
Application.ScreenUpdating = True

End Sub
Biraz uzun sürüyor ama iş görüyor :)
İlgilenenler için kodları ekledim.

Herkese iyi günler dilerim.
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Sayın İrfancantr

Kodlar güzel olmuş ama sütunlar bittikçe yeni sayfaya devam ediyor.
Sanırım siz sütunlar dolunca alt satırdan devam etsin istemiştiniz.
Süre gerçekten 256 rakamında kasar.
ADO veritabanı ile daha kolay olur.
Dizi(a1,b1,c1/a2,b2,c2/a3,b3,c3/....) şeklinde 3 lü matrixte c değerleri sabit iken b0...B256 değerlerini tek hamlede değiştirecek bir kod aradım ama bulamadım.Bu yolla sanırım çok kısa sürede döngü tamamlanır.
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Sayın İrfancantr

Kodlar güzel olmuş ama sütunlar bittikçe yeni sayfaya devam ediyor.
Sanırım siz sütunlar dolunca alt satırdan devam etsin istemiştiniz.
Süre gerçekten 256 rakamında kasar.
ADO veritabanı ile daha kolay olur.
Dizi(a1,b1,c1/a2,b2,c2/a3,b3,c3/....) şeklinde 3 lü matrixte c değerleri sabit iken b0...B256 değerlerini tek hamlede değiştirecek bir kod aradım ama bulamadım.Bu yolla sanırım çok kısa sürede döngü tamamlanır.
Evet farkındayım ama aklıma bu kadarı geldi :)
Epey kastığının farkındayım.Konu takibini bırakmış değilim, daha farklı bir kod önerisini bekliyor olacağım.
 
Üst