Listbox'ta listeleme ve kaydetme

Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
merhaba arkadaşlar formlarda bir çok örnek var ama makrolardan pek anlamadığım için yapamadım yardım ederseniz sevinirim.
ekteki dosyada "KAYIT" bölümünden sayfaya öğrenciyle ilgili kayıtlar yapıyorum.Benim istediğim " KAYIT GÖRÜNTÜLE - DEĞİŞTİR" bölümünde alt kısımda bulunan textbox'a yazdığım ismi kayıtların arasından arayıp bulunan isimleri ad ve soyad olarak listboxta listelemek, listboxta seçtiğim kişinin bilgilerini görüntülemek,ve yaptığım değişiklikleri kaydet butonuna basarak kaydetmek istiyorum.
yardımlarınız için şimdiden teşekkür ederim.
 
Son düzenleme:
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
öğrencinin alacağı eğitim bölümünde excel sayfasındaki BİR,GUR,FTR kısımlarında x varsa formdaki checkboxlar aktif olsun yoksa pasif olsun istiyorum.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kodlarınızda aşağıdaki değişiklik ve ilaveleri yapın lütfen.

Buton5 olayına birkaç satır kod ilave edildi. Sizdekini buna göre revize edin. Değişiklikler gösterilmiştir.

Kod:
Private Sub CommandButton5_Click()
If TextBox18.Text = "" Then
Msg = CreateObject("WScript.Shell").Popup("ARANACAK BİR İSİM GİRİN", 1, "UYARI")
[COLOR=green]'-----EKLEME YAPILAN KISIM------------------------
Else
ListBox1.Clear
Set sh = Sheets("KAYIT")
sonsat = sh.Cells(65536, 2).End(xlUp).Row
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "100;150"
For i = 2 To sonsat
x = ListBox1.ListCount
  If Cells(i, 2) = UCase(TextBox18.Text) Then
   ListBox1.AddItem
   ListBox1.List(x, 0) = Cells(i, 2)
   ListBox1.List(x, 1) = Cells(i, 3)
  End If
Next i
'--------------------------------------------------
[/COLOR]End If
Set sh = Nothing
End Sub
Aşağıdaki kısım Listbox'a mouse'la çift tıkladığınızda verileri, textboxlara yükler. Lütfen bunuda userform2'nin kod sayfasına ilave edin.

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox1.ListCount = 0 Then: MsgBox "Liste boş. İşlem yapılamaz": Exit Sub
Set sh = Sheets("KAYIT")
n = ListBox1.ListIndex
ad = ListBox1.List(n, 0)
soyad = ListBox1.List(n, 1)
sonsat = sh.Cells(65536, 2).End(xlUp).Row
For i = 2 To sonsat
 If Cells(i, 2) = ad And Cells(i, 3) = soyad Then GoTo f1
Next i
f1:
With UserForm2
  .CheckBox1.Value = False
  .CheckBox2.Value = False
  .CheckBox3.Value = False
  .TextBox1.Text = Cells(i, 1)
  .TextBox2.Text = Cells(i, 2)
  .TextBox3.Text = Cells(i, 3)
  .TextBox4.Text = Cells(i, 4)
  .TextBox5.Text = Cells(i, 5)
  .TextBox6.Text = Cells(i, 7)
  .TextBox7.Text = Cells(i, 8)
  .TextBox8.Text = Cells(i, 9)
  .TextBox9.Text = Cells(i, 10)
  .TextBox10.Text = Cells(i, 11)
  .TextBox21.Text = Cells(i, 13)
  .TextBox11.Text = Cells(i, 20)
  .TextBox12.Text = Cells(i, 21)
  .TextBox13.Text = Cells(i, 22)
  .TextBox14.Text = Cells(i, 23)
  .TextBox15.Text = Cells(i, 24)
If Cells(i, 15) <> Empty Then: .CheckBox1.Value = True
If Cells(i, 16) <> Empty Then: .CheckBox2.Value = True
If Cells(i, 17) <> Empty Then: .CheckBox3.Value = True
  .TextBox16.Text = Cells(i, 18)
  .TextBox17.Text = Cells(i, 25)
End With
Set sh = Nothing
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kayit

Kayıt işlemini atlamışım. Aşağıdaki kodlar bunun için. Lütfen bunları da ilave edin.

Kod:
Private Sub CommandButton4_Click()
'KAYDET-----------------
If Trim(TextBox2.Text) = Empty Or Trim(TextBox3.Text) = Empty Then: MsgBox "Ad ve Soyad boş geçilemez": Exit Sub
With UserForm2
  Cells(i, 1) = .TextBox1.Text
  Cells(i, 2) = .TextBox2.Text
  Cells(i, 3) = .TextBox3.Text
  Cells(i, 4) = .TextBox4.Text
  Cells(i, 5) = .TextBox5.Text
  Cells(i, 7) = .TextBox6.Text
  Cells(i, 8) = .TextBox7.Text
  Cells(i, 9) = .TextBox8.Text
  Cells(i, 10) = .TextBox9.Text
  Cells(i, 11) = .TextBox10.Text
  Cells(i, 13) = .TextBox21.Text
  Cells(i, 20) = .TextBox11.Text
  Cells(i, 21) = .TextBox12.Text
  Cells(i, 22) = .TextBox13.Text
  Cells(i, 23) = .TextBox14.Text
  Cells(i, 24) = .TextBox15.Text
  If .CheckBox1.Value = True Then: Cells(i, 15) = "X"
  If .CheckBox2.Value = True Then: Cells(i, 15) = "X"
  If .CheckBox3.Value = True Then: Cells(i, 15) = "X"
  Cells(i, 18) = .TextBox16.Text
  Cells(i, 25) = .TextBox17.Text
End With
'Bu kısım Sn.Leventm'nin kodlarından alınmıştır ----------------.
For a = 0 To Controls.Count - 1
  If TypeName(Controls(a)) = "TextBox" Then Controls(a) = ""
  If TypeName(Controls(a)) = "CheckBox" Then Controls(a) = False
Next
'---------------------------------------------------
End Sub
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
çok teşekkürler sayın fpc ama bir sorun var kaydet butonuna basınca hata veriyor değişiklikleri kaydetmiyor.
yardımınız için çok teşekkür ederim
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sayın ismailuguz,
Size söylemeyi unuttuğum tek bir satır kalmış. Kusura bakmayın.

Userform2 nin kod sayfasının en üst satırına şunu yazın

Kod:
dim i as integer
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Yaş ve Kalan Gün 'ün görüntülenmesi için Listbox1'in doubleclick kodunu aşağıdaki gibi revize edin.

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox1.ListCount = 0 Then: MsgBox "Liste boş. İşlem yapılamaz": Exit Sub
Set sh = Sheets("KAYIT")
n = ListBox1.ListIndex
ad = ListBox1.List(n, 0)
soyad = ListBox1.List(n, 1)
sonsat = sh.Cells(65536, 2).End(xlUp).Row
For i = 2 To sonsat
 If Cells(i, 2) = ad And Cells(i, 3) = soyad Then GoTo f1
Next i
f1:
With UserForm2
  .CheckBox1.Value = False
  .CheckBox2.Value = False
  .CheckBox3.Value = False
  .TextBox1.Text = Cells(i, 1)
  .TextBox2.Text = Cells(i, 2)
  .TextBox3.Text = Cells(i, 3)
  .TextBox4.Text = Cells(i, 4)
  .TextBox5.Text = Cells(i, 5)
  .TextBox6.Text = Cells(i, 7)
  .TextBox7.Text = Cells(i, 8)
  .TextBox8.Text = Cells(i, 9)
  .TextBox9.Text = Cells(i, 10)
  .TextBox10.Text = Cells(i, 11)
  .TextBox21.Text = Cells(i, 13)
  .TextBox11.Text = Cells(i, 20)
  .TextBox12.Text = Cells(i, 21)
  .TextBox13.Text = Cells(i, 22)
  .TextBox14.Text = Cells(i, 23)
  .TextBox15.Text = Cells(i, 24)
If Cells(i, 15) <> Empty Then: .CheckBox1.Value = True
If Cells(i, 16) <> Empty Then: .CheckBox2.Value = True
If Cells(i, 17) <> Empty Then: .CheckBox3.Value = True
  .TextBox16.Text = Cells(i, 18)
  .TextBox17.Text = Cells(i, 25)
[COLOR=red]'---- İLAVE YAPILAN KISIM --------------
  .TextBox19.Text = Year(Now) - Year(Cells(i, 5))
  .TextBox20.Text = Cells(i, 14)
'---------------------------------------
[/COLOR]End With
Set sh = Nothing
End Sub
Kaydet'den sonra listbox1'deki liste şu an temizlenmiyor. Eğer temizlenmesini isterseniz. Kaydet butonun -CommandButton4_Click()- yordamının sonuna
Kod:
Listbox1.clear
yazını
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
kay&#305;t kaparken Cells(i, 1) = .TextBox1.Text k&#305;sm&#305;nda hata veriyor.
neden anlayamad&#305;m ???
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kod:
dim i as integer
satırını userformun kod sayfasının en üstüne ilave ettiniz mi?
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
&#351;imdi tamam say&#305;n fpc &#231;ok te&#351;ekk&#252;r ederim sa&#287;olun
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
fakat bir sorunum daha var checkboxlarda de&#287;i&#351;iklik yap&#305;nca &#231;al&#305;&#351;ma sayfas&#305;ndaki kay&#305;tlar de&#287;i&#351;miyor.checkboxlar false olunca &#231;al&#305;&#351;ma sayfas&#305;ndaki x i&#351;aretleri silinmiyor.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Lütfen, şunu deneyin.

Kod:
Private Sub CommandButton4_Click()
'KAYDET-----------------
If Trim(TextBox2.Text) = Empty Or Trim(TextBox3.Text) = Empty Then: MsgBox "Ad ve Soyad boş geçilemez": Exit Sub
With UserForm2
  Cells(i, 1) = .TextBox1.Text
  Cells(i, 2) = .TextBox2.Text
  Cells(i, 3) = .TextBox3.Text
  Cells(i, 4) = .TextBox4.Text
  Cells(i, 5) = .TextBox5.Text
  Cells(i, 7) = .TextBox6.Text
  Cells(i, 8) = .TextBox7.Text
  Cells(i, 9) = .TextBox8.Text
  Cells(i, 10) = .TextBox9.Text
  Cells(i, 11) = .TextBox10.Text
  Cells(i, 13) = .TextBox21.Text
  Cells(i, 20) = .TextBox11.Text
  Cells(i, 21) = .TextBox12.Text
  Cells(i, 22) = .TextBox13.Text
  Cells(i, 23) = .TextBox14.Text
  Cells(i, 24) = .TextBox15.Text
  If .CheckBox1.Value = True Then: Cells(i, 15) = "X": Else Cells(i, 15) = ""
  If .CheckBox2.Value = True Then: Cells(i, 16) = "X": Else Cells(i, 16) = ""
  If .CheckBox3.Value = True Then: Cells(i, 17) = "X": Else Cells(i, 17) = ""
  Cells(i, 18) = .TextBox16.Text
  Cells(i, 25) = .TextBox17.Text
End With
'Bu kısım Sn.Leventm'nin kodlarından alınmıştır ----------------.
For a = 0 To Controls.Count - 1
  If TypeName(Controls(a)) = "TextBox" Then Controls(a) = ""
  If TypeName(Controls(a)) = "CheckBox" Then Controls(a) = False
Next
'---------------------------------------------------
End Sub
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
&#231;ok sa&#287;olun say&#305;n fpc rapor k&#305;sm&#305;nda rapor ver butonuna t&#305;klay&#305;nca N sutununda &#246;&#287;rencinin kalan rapor s&#252;resi 30 g&#252;nden az olanlar&#305; raporu bitenler butonuna t&#305;klay&#305;nca N sutununda rapor s&#252;resi bitti yazanlar&#305;n ad&#305;n&#305; ve soyad&#305;n&#305; listelesin istiyorum.
birde arama yaparken "&#304;SMA&#304;L" yaz&#305;nca "ismail" diye aray&#305;nca sonu&#231; bulam&#305;yorum k&#252;&#231;&#252;k b&#252;y&#252;k harflere duyarl&#305; olmadan yapabilirmiyiz ?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sn.ismailuguz

rapor kısmında rapor ver butonuna tıklayınca N sutununda öğrencinin kalan rapor süresi 30 günden az olanları raporu
Userform3'ün kod sayfasına aşağıdakileri kopyalayın.

Kod:
Private Sub CommandButton1_Click()
Set sh = Sheets("KAYIT")
sonsat = sh.Cells(65536, 2).End(xlUp).Row
ListBox1.Clear
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "100;150;50"
For i = 2 To sonsat
x = ListBox1.ListCount
If Cells(i, 14) < 30 Then
   ListBox1.AddItem
   ListBox1.List(x, 0) = Cells(i, 2)
   ListBox1.List(x, 1) = Cells(i, 3)
   ListBox1.List(x, 2) = Cells(i, 14)
End If
Next i
Set sh = Nothing
End Sub
ve
bitenler butonuna tıklayınca N sutununda rapor süresi bitti yazanların adını ve soyadını listelesin istiyorum.
Yine Userform3'ün kod sayfasına aşağıdakini ilave edin

Kod:
Private Sub CommandButton5_Click()
Set sh = Sheets("KAYIT")
sonsat = sh.Cells(65536, 2).End(xlUp).Row
ListBox1.Clear
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "100;150"
For i = 2 To sonsat
x = ListBox1.ListCount
If Cells(i, 14) = "BİTTİ" Then
   ListBox1.AddItem
   ListBox1.List(x, 0) = Cells(i, 2)
   ListBox1.List(x, 1) = Cells(i, 3)
End If
Next i
Set sh = Nothing
End Sub
Büyük küçük harf duyarlılığı için FORUM'da Replace komutunun kullanımına ilişkin örnekler mevcuttur lütfen inceleyiniz ve tatbik etmeye çalışınız. Takıldığınız yerde yardımcı olmaya çalışırız.

Kolay gelsin
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
&#231;ok te&#351;ekk&#252;rler say&#305;n fpc
 
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
merhaba ekteki dosyada rapor bölümünde listbox'ta listelenen verileri RAPOR sayfasına yazdırmak istiyorum ama başaramadım yardımlarınızı bekliyorum.
teşekkürler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
ASorduğunuzdan anladığım kadarı ile bir şeyler yaptım.
Ekli dosyayı inceleyiniz.:cool:
Dosya istediğiniz şekilde düzenlendi.:cool:
Kod:
Private Sub CommandButton7_Click()
Dim sat As Long, i As Long
sat = Sheets("RAPOR").Cells(65536, "A").End(xlUp).Row + 1
MsgBox sat
If ListBox1.ListCount > 0 Then
    For i = 0 To ListBox1.ListCount - 1
        Sheets("RAPOR").Cells(sat, "A").Value = ListBox1.Column(0, i)
        Sheets("RAPOR").Cells(sat, "B").Value = ListBox1.Column(1, i)
        sat = sat + 1
    Next
End If
MsgBox "VERİLER RAPOR SAYFASINA AKTARILDI..!!", vbYesNo + vbInformation, Application.UserName
End Sub
 
Son düzenleme:
Katılım
8 Temmuz 2006
Mesajlar
143
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
teşekkürler sayın Orion2 evet böyle birşey istiyorum fakat bir sorun var yeni bir kayıt yapınca eski kayıtlar siliniyor ben eski kayıtların silinmesini istemiyorum . Alt alta devam etsin kaydetmeye.
tekrar teşekkürler
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
teşekkürler sayın Orion2 evet böyle birşey istiyorum fakat bir sorun var yeni bir kayıt yapınca eski kayıtlar siliniyor ben eski kayıtların silinmesini istemiyorum . Alt alta devam etsin kaydetmeye.
tekrar teşekkürler
Anlaşıldı .Tamam.
Şimdi yapıcam.:cool:
 
Üst