listbox ve combobox ta seçim yardımı

Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Arkadaşlar selam;
Elimizde A,B,C,D isimli sheet ler var.ve bunlarda a ve b sütunlarında 2.satırdan başlayan veriler var.combobox1 de sheet ler arasından seçim yapıp textbox ta x yazdığımızda seçtiğimiz sheet teki örneğin A5 te bulununan x verisini combobox2 de B5 te bulunan y verisini gösterecek.aynı zamanda combobox2 de y yazdığımızda listboxta x verisini göstermeside gerekiyor.
kodu nedir.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
arkadaşlar soruyu anlatamadım mı yoksa kimse soruyu okumadımı?cevap yokta onun için merak ettim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,249
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

İyi gayet güzel soru soruyorsunuzda neden bir örnek dosya eklemeyi düşünmüyorsunuz. Vermiş olduğunuz linkteki arkadaş en azından bunu yapmış. En azından sorunuzdaki verileri içeren örnek bir dosya ekleyinki cevap vermek isteyenler için kolaylık olsun. Açıkçası yanlış anlamayın ben sizin mesajınızı okuyunca oh ne güzel soruyu sormuş nasıl olsa bir yapan çıkar mantığını çıkartıyorum. Ayrıca örnek dosya eklemek ile ilgili aşağıdaki linki incelemenizi öneririm. :arkadas:

http://www.excel.web.tr/viewtopic.php?t=18320
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sanırım arkadaşlar beniyanlış anlıyor ya da biraz önyargılı davrandılar."nasıl olsa yapan çıkar" mantığının dışında sorunumla ilgili küçük ipuçları yakalamaya çalışıyorum.forumda daha önce bu tarz yüzlerce soru cevaplanmış.ayrıca daha önce dosya göndermiştim.ama isterseniz daha küçük bir dosya ile başlayalım.Öncelikle gönderdiğim dosyada da anlatmış olmama rağmen burda belirtmekte tekrar fayda görüyorum.yenikayıt userformu ile seöilecek bir sheette veri eklenecek ve verilerin numaraya göre sıralanacak olması gerekir.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
bu da ikinci sorum
not giriş formunda seçtiğimiz sheet ten listedeki birini bulmak bilgilerini görmek,bilgi eklemek ve değiştirmek istiyorum.bilgileri görürken bilgiler pasif,not girişi yaparken aktif gözükmeli
 

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
1.sorunuz için dosya ektedir.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sn leventm herşey çok güzel.ancak bir sorun var.
Sheets("" & sinif).[C7:T16].Sort key1:=Sheets("" & sinif).[C7] satırı hata veriyor.
Neden?
İşte cevap dosyanın tamamını incelemeniz gerektiğinde ısrarcı olmamın sebebi bu.çünkü karşınızdaki tabloyu bizim yerimize module2 deki macrolar oluşturuyor.yani C7:T16 sabit değil değişken.tablo oluşturma işlemi şöyle başlıyor
'boş tablo oluşturur
Range("B7:T7").Select
ActiveCell.FormulaR1C1 = "1." 'SOL SÜTÜNÜ NUMARALANDIRIR..
Selection.Locked = False
Selection.FormulaHidden = False
Selection.AutoFill Destination:=Range("B7:T" & i + 7), Type:=xlFillDefault
...
ve devam ediyor.Burada oluşturulacak listeninin öğrenci sayısını bilgigiris formundan alıyor.Yani herşey bağlantılı.
Yani sizin verdiğiniz formülün (ki aslında sadece C ve D sütunu için sıralama yapması yeterliydi) bu bilgiyi de dikkate alması gerekiyor.
 

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
İşte cevap dosyanın tamamını incelemeniz gerektiğinde ısrarcı olmamın sebebi bu.
Dosyanın tamamını incelemek zorunda kalındığında bunun çok zaman alacağı ortada, temel mantığı anladığınızda zaten sizde devamını getirirsiniz. Oradaki T16 hücresini değişken yapmak oldukça kolaydır. Aşağıdaki gibi düzenlemek yeterlidir.

[vb:1:9f9a8683d2]Sheets("" & sinif).Range("c7:t" & son).Sort key1:=Sheets("" & sinif).[c7]
[/vb:1:9f9a8683d2]
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
bunu denedim formülü değiştirdim.kayıt yapıyor ancak yinede hata veriyor.Range sınıfının Sort yöntemi başarısız hatası
 

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
Kaydet butonundaki kod aşağıdaki gibi olmalı. Yukarıda verdiğim şekilde ilgili satırı değiştirdim gayet güzel çalıştı.

[vb:1:789254566a]Private Sub kaydet_Click()
Sheets("" & sinif).Select
If sinif = "" Then
MsgBox "Lütfen önce sınıfı seçiniz."
sinif.SetFocus
Exit Sub
End If
son = Sheets("" & sinif).[b65536].End(3).Row - 1
sat = WorksheetFunction.CountA(Sheets("" & sinif).Range("c7:c" & son)) + 7
If son = sat - 1 Then
MsgBox "Form dolmuştur"
Exit Sub
End If
Sheets("" & sinif).Cells(sat, "c") = Val(ogrenci_no)
Sheets("" & sinif).Cells(sat, "d") = ogrenci_adsoy
Sheets("" & sinif).Range("c7:t" & son).Sort key1:=Sheets("" & sinif).[c7]
End Sub
[/vb:1:789254566a]
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sn leventm
verdiğiniz değişikliğin farkına varmıştım.uygulamaya kalktım.ancak dediğin gibi hata veriyor.hata nerde derseniz.elinizdeki dosyada ki bilgi_giriş formunu çalıştırın kutuları doldurun sınıf mevcudunu ise örneğin 25 kişilik seçin liste oluşturu tıklayın ve daha sonra yeni kayıt deneyin.sorun burda başlıyor.
 

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
Kodu aşağıdaki ile değiştirin. Sorun yeni eklenen sayfaların B3000 hücresine öğrenci sayısının yazılması ve sayfaya koruma konulmasından kaynaklanıyor.

[vb:1:9ae23e4e84]Private Sub kaydet_Click()
Sheets("" & sinif).Select
If sinif = "" Then
MsgBox "Lütfen önce sınıfı seçiniz."
sinif.SetFocus
Exit Sub
End If
son = Sheets("" & sinif).[e65536].End(3).Row - 1
sat = WorksheetFunction.CountA(Sheets("" & sinif).Range("c7:c" & son)) + 7
If son = sat - 1 Then
MsgBox "Form dolmuştur"
Exit Sub
End If
ActiveSheet.Unprotect
Sheets("" & sinif).Cells(sat, "c") = Val(ogrenci_no)
Sheets("" & sinif).Cells(sat, "d") = ogrenci_adsoy
Sheets("" & sinif).Range("c7:t" & son).Sort key1:=Sheets("" & sinif).[c7]
End Sub
[/vb:1:9ae23e4e84]
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sn Levent bey
Teşekkür ederim sorun ortadan kalktı.2.soruyuda incelemeye başladım.birşeyler oluyor gibi.ama hala tam olarak hallettiğimi söyleyemem.yardımlarınızı bekliyorum.
 

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
2.sorunuz için ekteki dosyayı inceleyin.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Herşey için çok teşekkür ederim.son bir soru;yıl sonu karne notu listede 4 gözükmesine rağmen formda 3,5 gözüküyor.Birde ogrencino combobox unun okunu kaldırmak gizlemek yada bunu listboxla değiştirmek mümkünmü?
 

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
Bunun sebebi T sütunundaki formül sonucunun aslında 3,5 olmasından fakat 4 görünmesinden kaynaklanıyor. Bu sütundaki fonksiyona birde yuvarla fonksiyonu ilave etmek gerekir. Örneğin; T7 hücresindeki formülü aşağıdaki ile değiştirin ve bu formülü diğer hücrelere kopyalayın.

=EĞER(EHATALIYSA(ORTALAMA((K7+S7)/2));"";YUVARLA(ORTALAMA((K7+S7)/2);0))
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sn levent bey
T sütununa macro ile şu formül otomatik olarak atanıyor zaten,burda bir problemmi var yoksa anlayamadım.
'yıl sonu ortalama sütununu oluşturur...
Range("T7").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "=IF(ISERROR(AVERAGE((RC[-9]+RC[-1])/2)),"""",AVERAGE((RC[-9]+RC[-1])/2))"
Selection.Font.Bold = True
Selection.Locked = True 'ortalama sütununu kilitler ve gizler
Selection.FormulaHidden = True
 

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
[vb:1:74c20b4462]ActiveCell.FormulaR1C1 = "=IF(ISERROR(AVERAGE((RC[-9]+RC[-1])/2)),"""",AVERAGE((RC[-9]+RC[-1])/2))" [/vb:1:74c20b4462]

Yukarıdaki satırı aşağıdaki ile değiştirin.

[vb:1:74c20b4462]ActiveCell.FormulaR1C1 = "=IF(ISERROR(AVERAGE((RC[-9]+RC[-1])/2)),"""",ROUND(AVERAGE((RC[-9]+RC[-1])/2),0))" [/vb:1:74c20b4462]
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Tamam sorunu yakaladım.Formülün yeni hali;
ActiveCell.FormulaR1C1 = "=IF(ISERROR(AVERAGE((RC[-9]+RC[-1])/2)),"""",ROUND(AVERAGE((RC[-9]+RC[-1])/2),0)"
olmalıymış.

Özür dilerim cevabını görmemiştim.diğer ortalama sütunlarınıda bu şekilde değiştirmeyi düşünüyorum.Yardımlarınız için çok teşekkürler.
 
Üst