üç taş

Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
Arkadaşlar yardımcı olur musunuz.? Şimdiden Teşekkürler.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
1. sorunun cevabı;
hücreleri seç, Veri/doğrulama/tümsayı'yı işaretle,
altındaki sekme "arasında" olarak kalsın.
en az "0" en fazla "2" yaz.
hata iletisini de istediğini gibi ayarlayabilirsin.
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
Acemi1, Öncelikle teşekkür ederim.
Söyledikleriniz işe yaradı. 2.sorumda demek istediğim; 1 sayısından ve 2 sayısından 3 er tane den başka giriş yapılamasın. İYi geceler
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Kod:
Sub OtomatikŞekil65_Tıklat()
'
' OtomatikŞekil65_Tıklat Makro
' Makro gg tarafından 20/05/2006 tarihinde kaydedildi.
'

'
If Range("I3") <> "" Then Exit Sub
    Range("F3").Select
    Selection.Copy
    Range("I3").Select
    ActiveSheet.Paste
    Range("F3").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "0"
    Range("I3").Select
End Sub
sizin kodlarınıza verdiğim ilaveyi yaparsanız 3. sorunuzdaki probleminiz de çözülüyor.
tabi bunu yazdığınız her koda ilave etmelisiniz.


(Hay Allah, bi türlü kırmızı yazamadım. Neyse siz anlamışsınızdır zaten):)
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Ha bir de;
ActiveCell.FormulaR1C1 = "0" yerine,
ActiveCell.Value = ""
yazarsanız daha iyi olur sanırım. Aksi takdirde kodlar bende hata veriyor da..
Tabi hesaplamayı etkiliyorsa başka

YAni kodları şu şekilde değiştirmenizi öneririm:
Kod:
Sub OtomatikŞekil65_Tıklat()
'
' OtomatikŞekil65_Tıklat Makro
' Makro gg tarafından 20/05/2006 tarihinde kaydedildi.
'

'
If Range("I3") > 0 Then Exit Sub
    Range("F3").Select
    Selection.Copy
    Range("I3").Select
    ActiveSheet.Paste
    Range("F3").Select
    Application.CutCopyMode = False
    ActiveCell.Value = ""
    Range("I3").Select
End Sub
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
SON HALİ

Acemi kardeş dedikleriniz işe yaradı teşekkür ederim.
dosyanın son hali ekte.

1 sayısından 3 tane 2 sayısından da 3 tane den başka girişi engelleyebilirmiyim acaba.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Re: SON HALİ

gunaygergin' Alıntı:
1 sayısından 3 tane 2 sayısından da 3 tane den başka girişi engelleyebilirmiyim acaba.
Sn gunaygergin;
o sorunuzun cevabı için iyi bir kod bilgisi gerekiyor o da bende yok.
Ben basit seviyedeki kodları yazabiliyorum şimdilik.

Ancak dikkat ettimde;
hücreler yer değiştirirken oyuncu kazandı diye uyarı veriyor ancak aslında kazanan falan yok.
bir deneyin göreceksiniz.
 

Metin Karaağaç

Uzman
Altın Üye
Katılım
25 Aralık 2004
Mesajlar
1,793
Excel Vers. ve Dili
Office 2016 Pro Plus-Türkçe
Altın Üyelik Bitiş Tarihi
10-12-2025
Mesela an altta iki hücreye "1" yazın,
sonra o "1" yazılı hücreyi alt sıradaki boş bir hücreye taşıyın, "kazandı" diyor.
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
Acemi1,

haklısınız orda bir algoritmik hata var. hücreyi taşır ken 3 tane yanyana gelmiş
gibi görüyor. sanırım ondan
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Bunun önüne geçmek için ;

macroda kes yapıştır denmiş.Kodu aşağıdaki gibi değiştirirseniz Acemi arkadaşımızın demiş olduğu hata ortadan kalkıyor.
If Range("I3") > 0 Then Exit Sub

Range("F3").Select
x = Range("f3").Value
ActiveCell.FormulaR1C1 = "0"
Range("I3").Select
ActiveCell.FormulaR1C1 = x
Range("F3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "0"
Range("I3").Select
End Sub
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Bu arada en alttaki satırlarada gerek kalmıyor kodunuz kısalmış oluyor bilginize

yani Kodu aşağıdaki gibi yapabilirsiniz.

If Range("I3") > 0 Then Exit Sub
Range("F3").Select
x = Range("f3").Value
ActiveCell.FormulaR1C1 = "0"
Range("I3").Select
ActiveCell.FormulaR1C1 = x
End Sub
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Kodunuzu Aşağıdaki gibi yazarsanız 3 taştan fazla koymuyor.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("h1").Value = 5 Then
Application.Undo
End If
If Range("I1").Value = 5 Then
Application.Undo
End If
If Range("F1").Value = 1 Then
MsgBox " MAVİ OYUNCU KAZANDI...."
End If
If Range("L1").Value = 2 Then
MsgBox " TRUNCU OYUNCU KAZANDI...."
End If

'Benim eklediğim satırlar aşağısı
If Range("H1").Value > 3 Then
MsgBox " TAŞ KOYAMAZSINIZ"
Application.Undo
End If
If Range("I1").Value > 3 Then
MsgBox " TAŞ KOYAMAZSINIZ"
Application.Undo
End If
End Sub

Dosyanın bitmiş hali Ekte.
Saygılar
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
CHANGE OLAYI

:kafa: arkadaşlar acaba çalışmamda bir ok'a basıldığında (r)
sütununda sırasıyla alt alta her hareketi listeleyebilir miyim

yani (f3) ten (ı3) e taşıyınca (r) sütununda ilk boş hücreye
(f3:ı3) yazsın. bunu sanırım (activecell.offset) komutu ile
yapılması gerekiyor.
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Syn günaygergin dediğinizi yapmak mümkün fakat daha önce sorduğunuz işlemleri dosyanıza eklememişsiniz.Şuan 3 taştan fazla giriş yapabiliyorsunuz !!?

Saygılar
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Dediğiniz işlemi Okların bulunduğu macroya aşağıdaki kodları eklemek ile mümkün;

sonsat = Worksheets("3TAS").[r65536].End(xlUp).Row + 1
Cells(sonsat, 18) = "F3:I3"

Ayrıca bu işlemin başına bir koşul ekleyip bu hareketi hangi oyuncunun yaptığınıda göstermeniz daha güzel olur düşüncesindeyim.

Saygılar
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
sn: tevfikdemir

verdiğiniz yöntemler çok güzel.

önceki formülü uyguladım ama gözden kaçırdığım bir nokta oldu galiba ki
başarılı olamadım.

bu komutu da uygulayacağım. Sitedeki etkin Yardımlarınızı görüyorum. Gerçekten ilginize çok teşekkür ederim.
Bu ve başka çalışmalarım da da yardımlarınızı Merakla bekliyorum. Ben daha bu işin başındayım. Sizin ve diğier arkadaşlar gibi ustalara ihtiyacımız var. Esenlikler.
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
gunaygergin' Alıntı:
önceki formülü uyguladım ama gözden kaçırdığım bir nokta oldu galiba ki
başarılı olamadım.
Önceki dediğim yöntemin altına dosyanın bitmiş halinide göndermiştim aslında! Ben denedim çalışıyor.Daha sonradan eklediğiniz kodlarla ilgili bir sorun olabilir.

Saygılar.
 
Katılım
25 Nisan 2006
Mesajlar
177
Excel Vers. ve Dili
OFFİCE XP TÜRKÇE
OFFİCE 2003 TÜRKÇE
OFFİCE 2010 TÜRKÇE
OFFİCE 2013 TÜRKÇE
Otomatik şekillerin gizlenmesi

Tekrar merhaba

sn tevfikdemir Dosya ekte tavsiyelerinizi uyguladım harika oldu.
aklınıza sağlık.

sizden ve diğer kıymetli arkadaşlardan, hücre içinde veri yokken etrafındaki okları nasıl gizleyebilirim diye soracaktım.
Şimdiden teşekkürler.
 
Üst