Birden fazla sütunu beraber karıştırmak

Katılım
15 Mayıs 2020
Mesajlar
18
Excel Vers. ve Dili
2010 Türkçe
Herkese merhaba, yardımlarınız için şimdiden teşekkür ederim. Benim yapmak istediğim. Örneğin 3 sütundaki yan yana olan değerler yine yan yana kalacak şekilde karışması. İngilizce bir kelimeler düşünün yanlarındaki sütunlarda da cevapları var ben bunları yandaki cevapları kalacak şekilde karıştırmak istiyorum.
 
Katılım
15 Mayıs 2020
Mesajlar
18
Excel Vers. ve Dili
2010 Türkçe
Sub karistir()
sonSat = Cells(Rows.Count, "A").End(3).Row
For i = 1 To sonSat * 2
basla1:
say1 = Int(Rnd() * sonSat) + 1
If say1 < 1 Or say1 > sonSat Then GoTo basla1
basla2:
say2 = Int(Rnd() * sonSat) + 1
If say2 < 1 Or say2 > sonSat Or say1 = say2 Then GoTo basla2
tmp = Cells(say1, "A").Resize(, 2).Value
Cells(say1, "A").Resize(, 2).Value = Cells(say2, "A").Resize(, 2).Value
Cells(say2, "A").Resize(, 2).Value = tmp
Next i
End Sub

Bu şekilde bir makro buldum fakat ben A ve B değil A ve F sütunu aynı kalarak karıştırsın istiyorum örneğin burada hangi değişikliği yapmalıyım ve kaçıncı satıra kadar yapacağını nerden değiştirebilirim?
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
İlk mesajınıza göre biraz değişik gibi ama;
İkinci mesajınızdaki kodlar aşağıdaki gibi düzenlenebilir

"A" sütunundaki dolu satır sayısı diğerlerinden az değilse
Kod:
Sub karistir()
sonSat = Cells(Rows.Count, "A").End(3).Row   '<-----------------"A" sütunu son satır
For i = 1 To sonSat * 2
basla1:
say1 = Int(Rnd() * sonSat) + 1
If say1 < 1 Or say1 > sonSat Then GoTo basla1
basla2:
say2 = Int(Rnd() * sonSat) + 1
If say2 < 1 Or say2 > sonSat Or say1 = say2 Then GoTo basla2
tmp = Cells(say1, "B").Resize(, 4).Value
Cells(say1, "B").Resize(, 4).Value = Cells(say2, "B").Resize(, 4).Value
Cells(say2, "B").Resize(, 4).Value = tmp
Next i
End Sub
 
Katılım
15 Mayıs 2020
Mesajlar
18
Excel Vers. ve Dili
2010 Türkçe
cevabınız için teşekkür ederim ama şunu anlamadım beraber karıştırmak istediğim sütunları nasıl belirleyeceğim mesela size attığım modülde A ve B sütunları beraber yani a sütunundali kelimenin B sütünundaki karşılığı ile beraber karışıyor ama ben B değil de başka bir sütun olsun istiyorum. Bir de şöyle bir şey yapılabilir mi? Mesela A sütununda İngilizce bir kelime var ben B sütununa cevabını yazacağım her yanlış yazdığımda ipucu olsun diye yanındaki sütunda örneğin C sütununda cevabın bir harfi çıksın Mesela A1 sütununda Car yazıyor ben B1'e Araba yazmam gerekiyor ama yanlış yazdım İpucu olsun diye bana cevabı yazılı bir sütundan ilk harfini yanındaki Sütuna çağırabilir mi her yanlış yazışımda bir harf gibi
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Yukarıdaki kodların uzun şeklini (açılımı) aşağıda yazmaya çalıştım
Kodları kopyalayıp yapıştırdıktan sonra içlerinde açıklamayı okuyun, kodların içinden istemediğiniz bölümleri silersiniz
ikinci isteğinize görede;
Başka bir sayfada ingilizce kelime ve türkçe karşılığı kayıtlı olursa; bu karşılıktan ilk harf alınabilir
Kod:
Sub karistir()
sonSat = Cells(Rows.Count, "A").End(3).Row   '<-----------------"A" sütunu son satır
For i = 1 To sonSat * 2
basla1:
say1 = Int(Rnd() * sonSat) + 1
If say1 < 1 Or say1 > sonSat Then GoTo basla1
basla2:
say2 = Int(Rnd() * sonSat) + 1
If say2 < 1 Or say2 > sonSat Or say1 = say2 Then GoTo basla2

'1 --------------------------------------------
tmp = Cells(say1, "A").Resize(, 6).Value  '********RASTGELE ÇIKAN İLK SAYI SATIRINDAKİ HÜCRELER HAFIZAYA ALINIR****

'2 ----------------------------------------------
'RASTGELE ÇIKAN İKİNCİ SAYININ SATIRINDAKİ HÜCRELER; İLK ÇIKAN SAYININ SATIRINDAKİ HÜCRELERE ALINIR/////////

Cells(say1, "A") = Cells(say2, "A")
Cells(say1, "B") = Cells(say2, "B")
Cells(say1, "C") = Cells(say2, "C")
Cells(say1, "D") = Cells(say2, "D")
Cells(say1, "E") = Cells(say2, "E")
Cells(say1, "F") = Cells(say2, "F")

' 3 ------------------------------------------------------------------------------
'BOŞ KALMASI GEREKEN HÜCRELERİN BAŞINDAKİ TIRNAK KALDIRILIR ///////////////////////

'Cells(say1, "A") = ""
Cells(say1, "B") = ""
'Cells(say1, "C") = ""
'Cells(say1, "D") = ""
'Cells(say1, "E") = ""
'Cells(say1, "F") = ""

' 4----------------------------------------------------------------------------------
'RASTGELE ÇIKAN İKİNCİ SAYININ SATIRINDAKİ HÜCRELERE; HAFIZAYA ALINAN SATIRIN HÜCRELERİ YAZILIR
Cells(say2, "A") = tmp(1, 1)
Cells(say2, "B") = tmp(1, 2)
Cells(say2, "C") = tmp(1, 3)
Cells(say2, "D") = tmp(1, 4)
Cells(say2, "E") = tmp(1, 5)
Cells(say2, "F") = tmp(1, 6)


Next i
End Sub
 
Katılım
15 Mayıs 2020
Mesajlar
18
Excel Vers. ve Dili
2010 Türkçe
çok teşekkür ederim peki ikinci söylediğim durumu nasıl yapabilirim? Müsaitseniz yardımcı olabilir misiniz?
 
Üst