• DİKKAT

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

Form ile çalışma sayfası arasında veri paylaşımı

Katılım
18 Mayıs 2009
Mesajlar
166
Excel Vers. ve Dili
Office 2003 Türkçe
Form üzerinde 1 combobox 10 textbox 4commandbutton var comboboxda seçili değerin bulunduğu hücre (B2) textboxlara veri aktarıyor (aktarılan veriler B2'den K2'ye kadar B2 ve K2 Dahil)

comboboxlarda seçili verinin bulunduğu satır içeriğini buton3 ile nasıl silebiliriz.
ve silmek değil değişiklik yapılması istenildiğinde comboboxda seçili değerin bulunduğu hücre textboxlara aktarıldığı için textbox üzerinde yapılan değişiklik buton2 yardımıyla nasıl güncellenir.

Form içerisindeki veri kaydet bul sil başlıklı dosyalardaki kodları kendime uyarlayamadım.
 

Ekli dosyalar

arkadaşlar hiç olmazsa bir fikir bildirseniz
 
Selamlar,

Çalışmanızı geliştirmek için uygulamalı eğitim bölümümüzdeki çalışmaları dikkatlice incelemenizi öneririm.

Siz kodlarınızda döngü kullanmışsınız. Döngüler programcılığın belkemiğidir fakat veri sayınız arttıkça hız kaybına sebep olacaktır. Bu sebeple kodlarınızdaki döngü yerine daha hızlı çalışan FIND komutunu kullandım.

Ayrıca silme işleminde hata oluşuyor. Sebebide sayfanın arka planında çalışan bir koddan kaynaklanmaktadır. Çalışmanızda ne tasarladığınızı bilmediğim için müdahale etmedim. Siz gerekli düzeltmeyi yaparsınız.

Çalışmanızdaki ilgili kodları aşağıdakilerle değiştirip deneyiniz.

Kod:
Private Sub OptionButton3_Click()
    CommandButton2.Visible = True
    CommandButton3.Visible = True
    CommandButton1.Visible = False
    TextBox7.Visible = True
    TextBox8.Visible = True
    Label7.Visible = True
    Label8.Visible = True
    TextBox9.Left = 312
    TextBox10.Left = 408
    Label9.Left = 312
    Label10.Left = 408
    CommandButton1.Left = 312
    CommandButton4.Left = 312
    CommandButton4.Top = 120
    CommandButton1.Top = 101.95
    Label6.Caption = "ÖD.YAP.SON MİK."
    ComboBox1.Visible = True
    Label11.Visible = True
    TextBox1.Enabled = True
    TextBox2.Enabled = True
    TextBox3.Enabled = True
    TextBox4.Enabled = True
    TextBox5.Enabled = True
    TextBox6.Enabled = True
    TextBox7.Enabled = True
    TextBox8.Enabled = True
    TextBox9.Enabled = True
    TextBox10.Enabled = True
End Sub


Kod:
Private Sub CommandButton2_Click()
    Dim Bul As Range
    '*****listbox seçili değilse uyar
    If ComboBox1.ListIndex < 0 Then
    MsgBox "Önce bir isim seçmelisiniz", vbInformation
    Exit Sub: End If
    '*****değişecek veriyi B sütununda ara
    Set Bul = Range("B:B").Find(ComboBox1)
    If Not Bul Is Nothing Then
    Cells(Bul.Row, "b") = TextBox1
    Cells(Bul.Row, "c") = TextBox2
    Cells(Bul.Row, "d") = TextBox3
    Cells(Bul.Row, "e") = TextBox4
    Cells(Bul.Row, "f") = TextBox5
    Cells(Bul.Row, "g") = TextBox6
    Cells(Bul.Row, "h") = TextBox7
    Cells(Bul.Row, "ı") = TextBox8
    Cells(Bul.Row, "j") = TextBox9
    Cells(Bul.Row, "k") = TextBox10
    'değişim sonu textleri temizle
    TextBox1 = Empty: TextBox2 = Empty: TextBox3 = Empty: TextBox4 = Empty: TextBox5 = Empty: TextBox6 = Empty: TextBox7 = Empty: TextBox8 = Empty: TextBox9 = Empty: TextBox10 = Empty
    ComboBox1.Value = ""
    Set Bul = Nothing
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    End If
End Sub


Kod:
Private Sub CommandButton3_Click()
    Dim Bul As Range
    '*****listbox seçili değilse uyar
    If ComboBox1.ListIndex < 0 Then
    MsgBox "Önce bir isim seçmelisiniz", vbInformation
    Exit Sub: End If
    '*****silinecek veriyi B sütununda ara
    Set Bul = Range("B:B").Find(ComboBox1)
    If Not Bul Is Nothing Then
    Rows(Bul.Row).Delete
    ComboBox1.Value = ""
    If Range("A2") <> "" Then
    Range("A2") = 1
    Range("A2").AutoFill Destination:=Range("A2:A" & Range("B65536").End(3).Row), Type:=xlFillSeries
    End If
    Set Bul = Nothing
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    End If
End Sub
 
Private Sub OptionButton1_Click()
CommandButton1.Visible = True
CommandButton2.Visible = False
CommandButton3.Visible = False
TextBox7.Visible = False
TextBox8.Visible = False
Label7.Visible = False
Label8.Visible = False
TextBox9.Left = 120
TextBox10.Left = 216
Label9.Left = 120
Label10.Left = 216
CommandButton1.Left = 312
CommandButton4.Left = 408
CommandButton4.Top = 101.95
CommandButton1.Top = 101.95
Label6.Caption = "PEŞİNAT"
ComboBox1.Visible = False
Label11.Visible = False
TextBox1.Enabled = True
TextBox2.Enabled = True
TextBox3.Enabled = True
TextBox4.Enabled = True
TextBox5.Enabled = True
TextBox6.Enabled = True
TextBox9.Enabled = True
TextBox10.Enabled = True
SELAMLAR
Hocam 9.10 TextBoxlarda ve OB larda bulunan sayısal değerlerin mantığı nedir.
TB9 bir bölümde 120,bir bölümde 312 ...
Selamlar.
 
TextBox10.Left = 216 nın anlamı TextBox10 nun userform üzerinde soldan alacağı konum
yada söyle denilebilir userformla Textbox10 arasında soldan değer kadar boşluk bırak

bunu kod olarak yazabildiğimiz gibi textbox nesnesinin özelliklerinden de ayarlayabiliriz.
 
Selamlar
Nesne özelliklerinden yaılabilirliliğini biliyorum da kodlara neden yazıyoruz ki..Amacımız en kısa kodlarla çalışan en iyi program değil mi.Fazla kod kafa karışıklığı demişti hocamızın birisi.
 
Geri
Üst