Kombinasyon makrosunu revize etmek

Katılım
15 Eylül 2016
Mesajlar
39
Excel Vers. ve Dili
türkçe 2007
Altın Üyelik Bitiş Tarihi
10-07-2021
merhaba ARKADAŞLAR:VE BÜYÜKLERİM VE KÜÇÜKLERİM
sitede sayısal loto macro ları var bana buna benzer 4 adet macro lazım
örnek vermek gerekirse elimde 30 adet araç var bunların plakalarını girerek işlem yapmak istiyorum sitede bulunan sayısal loto macrosuna benzer rakamları ben kendim belirlemek istiyorum örnek olara 1,3,28,53,72,17,46,79,80 gibi düşünelim be bu macro ları 5 li 6 lı
8li 10 lu olarak yapmak istiyorum ama tüm sonuçları sayfada görmek istiyorum yardımlarınız için şimdiden teşekkür ederim ÖRNEK:MACRO PİLİNT TARAFINDAN BANA YOLLANDI BEN BUNU 1/49 OLARAK DEGİLDE YUKARIDA RAKAMLARI KENDİ YAZDIĞIM GİBİ BELİRLEMEK İSTİYORUM.BUNU YAPMA ŞANSIM VARMI BİLMİYORUM YARDIMLARINIZ İÇİN TEŞEKKÜRLER ŞİMDİDEN.

Kod:
Sub Listele()
Dim x As Byte, y As Long, z As Long
Dim a As Byte, b As Byte, c As Byte, d As Byte, e As Byte, f As Byte, g As Byte

Cells.Clear
x = 49
z = 1

For a = 1 To x
For b = a + 1 To x
For c = b + 1 To x
For d = c + 1 To x
For e = d + 1 To x
For f = e + 1 To x
y = y + 1
If y > 1048576 Then
y = 1
z = z + 7
End If
Cells(y, z) = a
Cells(y, z + 1) = b
Cells(y, z + 2) = c
Cells(y, z + 3) = d
Cells(y, z + 4) = e
Cells(y, z + 5) = f
Next f
Next e
Next d
Next c
Next b
Next a

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Foruma kod eklerken lütfen CODE tagını kullanınız. Böylece eklediğiniz kodlar daha okunaklı ve belirgin olacaktır.

CODE tagı için mesaj yazdığınız edidör bölümünde diyez (#) işaretine basmanız yeterli olacaktır. Aşağıdaki gibi bir blok oluşacaktır. Siz kodu arasına yazmalısınız. (Not : Boşluklar olmayacak. Ben size tarif etmek için ekledim.)

[ CODE ]

[ / CODE ]

Ayrıca aynı konu için farklı başlıklar açıp yardım istemenize gerek yok. İlk başlığınız sonuçlanana kadar mesaj yazabilirsiniz.

http://www.excel.web.tr/showthread.php?goto=newpost&t=165648
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
6 rakama göre dediğiniz şekilde aşağıda yazdım. Yalnız öncelikle Sayfa2 ekleyip, bu sayfaya A sütununa olması gereken rakamları yazmanız gerekir.
Kod:
Sub Listele()
Dim x As Byte, y As Long, z As Long
Dim a As Byte, b As Byte, c As Byte, d As Byte, e As Byte, f As Byte, g As Byte
Dim s1, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")

s1.Cells.Clear
x = s2.Range("A" & Rows.Count).End(xlUp).Row
z = 1

For a = 1 To x
For b = a + 1 To x
For c = b + 1 To x
For d = c + 1 To x
For e = d + 1 To x
For f = e + 1 To x
y = y + 1
If y > 1048576 Then
y = 1
z = z + 7
End If
s1.Cells(y, z) = s2.Cells(a, 1)
s1.Cells(y, z + 1) = s2.Cells(b, 1)
s1.Cells(y, z + 2) = s2.Cells(c, 1)
s1.Cells(y, z + 3) = s2.Cells(d, 1)
s1.Cells(y, z + 4) = s2.Cells(e, 1)
s1.Cells(y, z + 5) = s2.Cells(f, 1)
Next f
Next e
Next d
Next c
Next b
Next a

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
15 Eylül 2016
Mesajlar
39
Excel Vers. ve Dili
türkçe 2007
Altın Üyelik Bitiş Tarihi
10-07-2021
hocam

bunu 5 Lİ VE 10 lu olarak yapmak istiyorum bunu nasıl yapacaĞım peki HOCAM
YATIĞINIZIN İÇİNDE EKLEME YAPABİLİYORMUYUZ
 
Son düzenleme:

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
a dan başlayıp f harfine kadar gitmiş, yani 6 harf siz bunu harf sayısını arttırarak ya da azaltarak değiştirebilirsiniz.5 için başına tek tırnak eklediğim kısımlar iptal manasında.
Kod:
Sub Listele()
Dim x As Byte, y As Long, z As Long
Dim a As Byte, b As Byte, c As Byte, d As Byte, e As Byte, f As Byte, g As Byte
Dim s1, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")

s1.Cells.Clear
x = s2.Range("A" & Rows.Count).End(xlUp).Row
z = 1

For a = 1 To x
For b = a + 1 To x
For c = b + 1 To x
For d = c + 1 To x
For e = d + 1 To x
'For f = e + 1 To x
y = y + 1
If y > 1048576 Then
y = 1
z = z + 7
End If
s1.Cells(y, z) = s2.Cells(a, 1)
s1.Cells(y, z + 1) = s2.Cells(b, 1)
s1.Cells(y, z + 2) = s2.Cells(c, 1)
s1.Cells(y, z + 3) = s2.Cells(d, 1)
s1.Cells(y, z + 4) = s2.Cells(e, 1)
's1.Cells(y, z + 5) = s2.Cells(f, 1)
'Next f
Next e
Next d
Next c
Next b
Next a

MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Sn.askm cevap vermiş ama alternatif olarak aşağıdaki dosyayıda denersiniz.
http://s6.dosya.tc/server10/zmxd31/KOM.zip.html
veya
https://www.dosyaupload.com/979D

"Sayfa1" "A" sütuna boşluk bırakmadan 10 satırdan az olmamak şartı ile elemanları girip, "B1" sütununa kaç seçim yapılacaksa (5 ile 10 arası) yazıp makroyu çalıştırınız.
Kod:
[SIZE="2"]Sub Listele()
Dim kom()
Dim dc As Object
Dim fd As Variant
Dim a, b, c, d, e, f, i, x, n, j As Integer
Set s1 = Sheets("Sayfa1")
If s1.[B1] = "" And IsNumeric([B1]) = False And [B1] < 2 Or [B1] > 10 Then MsgBox "[B1] HÜCRESİNE 5 İLE 10 ARASI SAYI YAZINIZ": Exit Sub

sat = s1.Cells(Rows.Count, 1).End(3).Row
If sat < 5 Then MsgBox "A sütununda yeterli veri yok": Exit Sub
Set s2 = Sheets("Sayfa2")
Set dc = CreateObject("Scripting.Dictionary")
For x = 1 To sat
dc.Add x, s1.Cells(x, 1)
Next
tk = s1.[B1].Value
dg = sat - tk
s2.Activate
s2.Cells.Clear
ReDim kom(1 To tk, 1 To 65536)
i = 0: n = 1: j = 1: x = 0

For a = 1 To dg + 1
For b = a + 1 To dg + 2
For c = b + 1 To dg + 3
For d = c + 1 To dg + 4
For e = d + 1 To dg + 5

If tk = 5 Then GoTo 10:
For f = e + 1 To dg + 6
If tk = 6 Then GoTo 10:
For g = f + 1 To dg + 7
If tk = 7 Then GoTo 10:
For h = g + 1 To dg + 8
If tk = 8 Then GoTo 10:
For k = h + 1 To dg + 9
If tk = 9 Then GoTo 10:
For l = k + 1 To dg + 10

10:
fd = Array(a, b, c, d, e, f, g, h, k, l)
i = i + 1
For nn = 0 To tk - 1

ff = CDbl(fd(nn))
kom(nn + 1, i) = dc.Item(ff)
Next

If i = 65536 Then
x = x + 1
s2.Cells(n, j).Resize(i, tk) = Application.Transpose(kom)
If x = Rows.Count / 65536 Then
x = 0: n = 1: i = 0
j = j + tk
End If
s2.Cells(n + i, j).Select
n = n + i
 Erase kom: i = 0
ReDim kom(1 To tk, 1 To 65536)
 End If
 If tk = 9 Then GoTo 11:
 If tk = 8 Then GoTo 12:
 If tk = 7 Then GoTo 13:
 If tk = 6 Then GoTo 14:
 If tk = 5 Then GoTo 15:

Next:
11:
Next:
12:
Next:
13:
Next:
14:
Next:
15:
Next: Next: Next: Next: Next
If i > 0 Then s2.Cells(n, j).Resize(i, tk) = Application.Transpose(kom)
End Sub [/SIZE]
 
Katılım
15 Eylül 2016
Mesajlar
39
Excel Vers. ve Dili
türkçe 2007
Altın Üyelik Bitiş Tarihi
10-07-2021
Sayın Pilint

dosya yı indiremi yorum rica etsem mail atarmısınız
özelden mail adresimi attım
 
Katılım
15 Eylül 2016
Mesajlar
39
Excel Vers. ve Dili
türkçe 2007
Altın Üyelik Bitiş Tarihi
10-07-2021
Sayın Plint emeğine saglık
 
Üst