İŞARETLENMEMİŞ EN AZ BİR SATIR VARSA ÇIKARKEN SOR

Katılım
3 Haziran 2006
Mesajlar
33
Merhaba,
Ekteki dosyamda C sutunda olan yazıların altlarını çizdikten sonra çalıştırdığım makro altı çizili olan şıklara bağlı olarak, A sutununa puanlarını yazıyor. Fakat hiçbirinin altı çizilmemişse 0 puan veriyor ve sonuç yanlış oluyor. Bu nedenle Mesela, 1. sorunun bulunduğu şıklardan hiçbirini işaretlememişse (bu sorunun cevabı birkaç şıkta olabilir, fakat mutlaka en az birinin altının çizilmiş olması gerekiyor) save yapıp çıkarken 1. soruyu işaretlememişsiniz genede çıkmak istiyormusunuz? gibi bir soru sorduktan sonra çıkılmasına izin veren bir makro olabilir mi? Bunun için sayfaya save butonu konulup, oradan save yapılması sağlanarak makronun çalıştırılması sağlanabilir mi? (Örnekteki soruların ve cevapların yerleri her zaman sabit) Şimdiden teşekkürler,
 
Katılım
3 Haziran 2006
Mesajlar
33
Sayın Acemi1 yukarda verdiğiniz linkte çok faydalı bilgiler var. Fakat bunları benim istediğim şekilde nasıl kullanacağımı çözemedim. Benim sayfamda kontrol edilmesi gereken hücrelerde zaten yazılar var fakat bunlardan en az bir tanesinin altının çizilip çizilmediğinin kontrol edilmesi gerekiyor. Acaba bunu C18 in altı çiziliyse K18 e 1 yaz, Değilse 0 yaz ....C26 nın altı çiziliyse K26 ya 1 yaz, Değilse 0 yaz diye formulleştirip bunları kendi içlerinde çarptırıp çıkan sonuca göre sayfadan çıkılmasına izin verilebilir mi? orn2 de 1. sorunun cevaplarından bazıları işaretlendiği ve işaretlenenlerin değerine 0 verilince çarpımı 0 çıktığı için, 2. soruya bakıp bu sorunun cevaplarının hiç biri işaretlenmediği için k sutununa 1 değerleri verildiği ve bunların bir biri ile çarpımları 1 değerini verdiği için save yapılarak çıkılmadan uyarması sağlanabilir mi?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekteki dosyayı inceleyin. Kod thisworkbook sayfasındadır.

[vb:1:f25fff2de3]Private Sub Workbook_BeforeClose(Cancel As Boolean)
sonsat = [a65536].End(3).Row
sat = 1
Do
sat = Cells(sat, "a").End(xlDown).Row
ilk = Cells(sat, "c").End(xlDown).Row
son = Cells(ilk, "c").End(xlDown).Row
For a = ilk To son
If Cells(a, "c").Font.Underline = xlUnderlineStyleSingle Then GoTo 10
Next
deg = deg & Chr(10) & Cells(sat, "b")
10 Loop Until sat = sonsat
If deg = "" Then Exit Sub
sor = MsgBox(deg & Chr(10) & "Nolu soru/sorular işaretlenmemiştir." & Chr(10) & Chr(10) & "Kayıt yapılsınmı?", vbYesNo)
If sor = vbNo Then
Cancel = True
Exit Sub
End If
ActiveWorkbook.Save
End Sub
[/vb:1:f25fff2de3]
 
Katılım
3 Haziran 2006
Mesajlar
33
Sayın leventm, size bu yardımınız içinde çok teşekkür ederim. Gönderdiğim örneklerde tam istediğim gibi çalışıyor. Bu kodu benzer başka sayfalarımda da kullanmak istediğimde bir türlü doğru çalıştıramadım. Eğer bunu başka sayfalarıma nasıl uygulayabileceğim hakkında kısa bir bilgi verebilirseniz çok sevinirim. (altı çizili olabilecek olan C sutunundaki şıkların satır numaraları değişirse, artarsa veya azalırsa gibi) Ama karışık ve zor bir konuda yardım istiyorsam önemli değil uğraşmayın, bu yaptığınız bile benim için süper oldu. Teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aslında istediğiniz dosyanızın yapısı nedeniyle zor bir kodlamaydı. Çünkü verileriniz herhangi bir ritme göre yazılı değil. Kod A sütunundaki her sorunun yanındaki tek bir 0 veya 1 diye yazdığınız verileri dikkate alıyor yani referansı budur. Bu sebeple asıl dosyanıza uyarlamak için dosyayı görmem gerekir, isterseniz küçük bir örnek ekleyin.
 
Katılım
3 Haziran 2006
Mesajlar
33
Sayın leventm, şimdi neden çalıştıramadığımı anladım. Benim ilk ORN.xls dosyama bakabilirseniz, bu dosyada ctrl+Q'yu çalıştırdığınızda makro sayfanın ilk ve bu şıkları işaretleyen kullanıcının bana gönderdiği halini göreceksiniz. Daha sonra ben CTRL+A ile bu puanları yazdırtıyorum.
Bunları kullananların görmemesini istiyorum. Yani onlar sayfayı save yaparken 1 ve 0 puanları olmuyor. Birde bu makroda hiç bir şık işaretli değilse de A sütununa gene 0 yazıyor. Bunu da CTRL+a ile kullandığım makro da düzeltememiştik. Bu neden ile acaba bunu C18 in altı çiziliyse K18 e 1 yaz, Değilse 0 yaz ....C26’nın altı çiziliyse K26 ya 1 yaz, Değilse 0 yaz...diye formülleştirip sizin yazdığınız kod ile K sütununu kontrol etmek mümkün olabilir mi?
Sonuç olarak CTRL+A ile çalışan makronun kontrol ettiği satırların en az birinin çıkarken çizili olup olmadığını kontrol etmek istiyorum. Belki CTRL+A ile çalıştırdığım makroda size bir fikir verebilir. Bu makro altı çizili olanları karşılaştırıp uygun puanı veriyor.
 
Katılım
3 Haziran 2006
Mesajlar
33
Sayın leventm,
Yukarıda ki gibi bir çözüm olamazsa, belki K sutununda belli yerlere sabit olarak yazabileceğimiz rakamlar ile daha önce yazdığınız kodu çalıştırabilirsiniz.
 
Üst