• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel de 2 kolonu aynı anda işaretlememek için gerekli bir fonksiyon

Katılım
18 Ekim 2016
Mesajlar
5
Excel Vers. ve Dili
vba
Selam;

excelde 2 kolon oluşturdum. bunlardan birisi evet birisi hayır kolonu. eveti seçtiğimde konuya göre bir puan almakta hayır dersemde o kadar puan kısmakta.

örn: derse devamlılık eveti işaretlediysem +5 hayır demişsem -5 oluyor. bunlar için genel toplamı yapabiliyorum.
sumif(B8:B18; “ü”;D8: D18)- sumif(C8:C18; “x”;D8: D18) ( ü harfine bastığımda yes’e tik basıyor, x harifne basığımda x harfi geçiyor)

Benim sıkıntım aynı anda hem yes hemde no ya basmamak gerekli toplamada sıkıntı çekmek istemiyorum çünkü

yardımcı olabişlirseniz çok memnun olurum

Teşekkürler
 
Asıl dosyanızla uyumlu bir örnek dosya hazırlayıp dosyamda belirttiğim şekilde paylaşırsanız iyi olur.
 
Biraz ayrıntılı bir şey yapmaya çalıştım. Aşağıdaki kodu ilgili sayfanın kod bölümüne (Sayfa adına sağ tıklayıp Kod Görüntüle dediğinizde açılan sayfaya) yapıştırırsanız Yes ve No sütunlarında fare ile hücre seçtiğinizde duruma göre işaret koyar ya da siler, iki seçeneğin aynı anda dolu olmasına izin vermez vs. Dosyayı kaydederken Makro içerebilen excel dosyası olarak kaydetmeyi unutmayın:
Kod:
Private Sub Worksheet_selectionChange(ByVal Target As Range)
If Intersect(Target, Range("B8:B14, B16:B18")) Is Nothing Then GoTo 10

If Target.Offset(0, 1) <> "" Then
    Application.EnableEvents = False
    uyarı1 = MsgBox("Aynı anda hem Yes hem de No seçilemez, No silinsin mi?", vbYesNo)
    If uyarı1 = vbYes Then
        Target.Offset(0, 1) = ""
        Target = "ü"
        Target.Offset(0, 2).Select
        GoTo 20
    Else
        Target = ""
        Target.Offset(0, 2).Select
    End If
    Application.EnableEvents = True
Else
    Application.EnableEvents = False
    If Target <> "" Then
        Target = ""
        Target.Offset(0, 2).Select
    Else
        Target = "ü"
        Target.Offset(0, 2).Select
    End If
    Application.EnableEvents = True
End If
10:
If Intersect(Target, Range("C8:C14, C16:C18")) Is Nothing Then Exit Sub
If Target.Offset(0, -1) <> "" Then
    Application.EnableEvents = False
    uyarı2 = MsgBox("Aynı anda hem Yes hem de No seçilemez, Yes silinsin mi?", vbYesNo)
    If uyarı2 = vbYes Then
        Target.Offset(0, -1) = ""
        Target = "x"
        Target.Offset(0, 1).Select
        GoTo 20
    Else
        Target = ""
        Target.Offset(0, 1).Select
    End If
    Application.EnableEvents = True
Else
    Application.EnableEvents = False
    If Target <> "" Then
        Target = ""
        Target.Offset(0, 1).Select
    Else
        Target = "x"
        Target.Offset(0, 1).Select
    End If
    Application.EnableEvents = True
End If
20:
Application.EnableEvents = True
End Sub
 
Kodlamaya gerek olmadan Veri Doğrulama ile yapabilirsiniz.
Dosyanız ek'tedir.
 

Ekli dosyalar

Çok teşekkür ederim yusuf44 öncelikle vermiş olduğunuz detaylı kodlama için.

Fakat ben bu kodlamayı dediğiniz şekilde gömemedim sisteme. Makro içine gömmeyi denediğimde de bir sonuca erişemedim.

Tekrar yardımcı olabilirseniz memnun olurum.

Teşekkürler
 
Yukarda da belirttiğim gibi :

(Sayfa adına sağ tıklayıp Kod Görüntüle dediğinizde açılan sayfaya)

Kodları kopyalayın, ilgili sayfa sekmesine (örnek dosyada Sheet1) sağ tıklayıp kod görüntüle deyin, açılan sayfaya bu kodları yapıştırın. Daha sonra sayfa içinde B8:C14, B16:C18 aralığında fareyle hücrelere tıkladığınızda hücrelerin o anki durumuna göre işlem yapacaktır.

Örnek dosya:

https://drive.google.com/file/d/0B43WMUs21VpfWmo2RV8wY21fUE0/view?usp=sharing
 
İlgilendiğiniz için çok teşekkür ederim yusuf44

Kolay gelsin herkese...
 
Geri
Üst