• DİKKAT

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

Kayıt satırını nasıl seçerim

  • Konbuyu başlatan Konbuyu başlatan oornek1
  • Başlangıç tarihi Başlangıç tarihi
Katılım
31 Mart 2008
Mesajlar
162
Excel Vers. ve Dili
2003 türkçe
Merhaba arkadaşlar;

aşağıdaki kodda 7 satırdan itibaren form da yazdıklarımı listelemesini istiyorum fakat kodu çalıştırdığımda kod içerisinde bulunan mesajlardan "Kayıt işlemi gerçekleşti" mesajı geliyor...
excelde ilgili sayfa da ilk yedi satır birletirilmiştir.

ornek dosyayıda ekledim
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Sheets("kurulum").Select
Dim bak As Range '****
Dim say As Integer
For Each bak In Range("A7:A" & WorksheetFunction.CountA(Range("A7:A65000")))
If bak.Value = TextBox1.Value Then
MsgBox "Kayıt İşlemi Gerçekleşti"
Exit Sub
End If
If TextBox1.Text = "" Then
MsgBox "Lütfen önce isim girin...", , "Kayıt Hatası!!!"
Exit Sub
End If
Next bak
For Each bak In Range("B7:B" & WorksheetFunction.CountA(Range("B7:B65000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(TextBox1.Value, vbUpperCase) Then
Exit Sub
End If
Next bak
say = WorksheetFunction.CountA(Range("B7:B65500"))
TextBox19.Value = say
Cells(say + 1, 1).Value = TextBox19.Value
Cells(say + 1, 2).Value = TextBox1.Value
Cells(say + 1, 3).Value = TextBox2.Value
Cells(say + 1, 4).Value = TextBox3.Value
Cells(say + 1, 5).Value = TextBox4.Value
Cells(say + 1, 6).Value = TextBox5.Value
Cells(say + 1, 7).Value = TextBox6.Value
Cells(say + 1, 8).Value = TextBox7.Value
Cells(say + 1, 9).Value = TextBox8.Value
Cells(say + 1, 10).Value = TextBox9.Value
Cells(say + 1, 11).Value = TextBox10.Value
Cells(say + 1, 12).Value = TextBox11.Value
Cells(say + 1, 13).Value = TextBox12.Value
Cells(say + 1, 14).Value = TextBox13.Value
Cells(say + 1, 15).Value = TextBox14.Value
Range("A7:A65500").Select
MsgBox "Yeni Kayıt Başarıyla Yapılmıştır.", vbInformation, "Sn. " & Application.UserName
Selection.Sort Key1:=Range("A7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'************************
Range("B7:U65500").Select
Selection.Sort Key1:=Range("B7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B7").Select '*********
TextBox19.Value = WorksheetFunction.Count(Range("A7:A65500")) + 1
CommandButton1_Click
TextBox17 = Sheets("kurulum").Range("AB7").Value
TextBox18 = Sheets("kurulum").Range("AC1").Value
TextBox1.SetFocus
Unload kurulum
kurulum.Show
End Sub
 

Ekli dosyalar

Sayın oornek1,
Öncelikle tam olarak ne yapmak istediğiniz anlamadım.Biraz daha açıklar mısınız?
"7 satırdan itibaren form da yazdıklarımı listelemesini istiyorum" derken Userform'a girdiğiniz verileri mi 7.satırdan itibaren sayfaya yazdırmak istiyorsunuz?
"Kayıt işlemi gerçekleşti" mesajının gelmesindeki sebep aşağıdaki kodlar:

Kod:
For Each bak In Range("A7:A" & WorksheetFunction.CountA(Range("A7:A65000")))
If bak.Value = TextBox1.Value Then
MsgBox "Kayıt İşlemi Gerçekleşti"

Bu kodlarda "bak" değerini A sütunundaki her bir hücreyle ilişkilendiriyor.Eğer hücrelerden birisi Textbox1'deki değer ile aynıysa mesaj veriyor.Sizin dosyanızda da Hücreler de Textbox1 de boş.
Ayrıca
Kod:
For Each bak In Range("A7:A" & WorksheetFunction.CountA(Range("A7:A65000")))
kodunda countA sonucu 0 çıktığı için bu satır hata veriyor.Kodların en başındaki On Error Resume Next astırından dolayı bir sonraki kod satırına yani mesaj kısmına geçiyor.
 
Sayın bedersu;

Örnek dosyada da verdiğim gibi userforma kayıtlar gireceğim sırasıyla kaydedecek bu kayıtları A7 hücresinden başlayarak yapmasını istiyorum.
 
Sayın oornek1,
Kodlarınızı incelediğimde bazı sıkıntıların olduğunu tespit ettim.Mesela Userform'un üstünde 14 adet Textbox'ın hepsinde "Adı-Soyadı" yazıyor.Userform'a gireceğiniz veriler 7. satırdan itibaren alt alta mı yazılacak?Burada bir sıkıntı var çünkü "kurulum" sayfasında "adı soyadı" kısmı yanyana yazılmış.Ayrıca Userform açılırken Textbox7'ye tarih atılıyor.

Kod:
Private Sub UserForm_Initialize()
TextBox7 = Format(Date, "mm.dd.yyyy")
End Sub

"İptal Et" butonundaki kodda Userform'un ismi değil sayfanın ismi var.Bu şekilde de hata alıyorsunuz.

Kod:
Private Sub CommandButton2_Click()
kurulum.Hide
End Sub

Kodların en sonunda tamamıyla farklı kodlar mevcut.

Kod:
 CommandButton1_Click
    TextBox17 = Sheets("kurulum").Range("AB7").Value
    TextBox18 = Sheets("kurulum").Range("AC1").Value
    TextBox1.SetFocus
    Unload kurulum
    kurulum.Show

Bu şekilde isteğinize cevap vermek biraz zor.Daha düzgün ve isteğinize uygun hazırlanmış bir Userform ile birlikte dosyanızı yeniden gönderirseniz yardımcı olabiliriz.
 
Sayın bedersu;

Örnek Dosyayı düzenledim... Başşlıkları rakamlarla belirttim...
örnek dosyayı incelerseniz demek istediğimi anlarsız...

Kayıtlar A7 hücresinden O7 hücresi arasına yapılacak bu işlem 65500 e kadar süürecek kayıtları userfor1 aracı ile gireceğim her girişte yaılan her kayıt için aynı şeyi devam ettirecek.

yani bir önceki kayıt A7;O7 aralığında ise, yeni kayıt A8;O8 aralığına gelmeli...



Örnek dosyayıda düzenledim..
 

Ekli dosyalar

Allah aşkına bir yardım edin aklımdan olacağım
 
Sayın oornek1,
Her zaman internete girip foruma göz atamadığımızdan dolayı bu şekilde bir gecikme oldu.Kusura bakmayın.Aşağıdaki kodlar dener misiniz?

Kod:
Private Sub CommandButton1_Click()
If TextBox1.Text = "" Then
MsgBox "Lütfen önce isim girin...", , "Kayıt Hatası!!!"
Exit Sub
End If
Range("A7") = 1
For i = 1 To 14
a = Range("A65500").End(3).Row
If Left(Controls(i).Name, 7) = "TextBox" Then
Sheets("kurulum").Cells(a, i + 1) = Controls(i).Value
End If
Next
Cells(a + 1, 1) = a - 5
MsgBox "Yeni Kayıt Başarıyla Yapılmıştır.", vbInformation, "Sn. " & Application.UserName
End Sub
Private Sub CommandButton2_Click()
For Each veri In Controls
If Left(veri.Name, 7) = "TextBox" Then veri.Value = ""
Next
Me.Hide
End Sub
Private Sub UserForm_Initialize()
TextBox1.SetFocus
End Sub
 
Geri
Üst