Son satıra kayıt kodu hakkında

Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Aşağıdaki kod ile sayfanın son satırına kayıt yapıyorum. Benim öğrenmek istediğim bu kaydı yaparken sadece bir sutunu kıstas alabilirmiyiz.




Sub Kaydet_Click()
Sheets("Personel_Bilgi").Select
Range("A65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
son = [A65536].End(3).Row + 1
Cells(son, "A") = son - 10
'ActiveCell.FormulaR1C1 = "=ROW()-10"
'Selection.Copy
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Application.CutCopyMode = False
ActiveCell.Offset(0, 1).Value = TextBox1.Text
 

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Aşağıdaki kod satırında A harfi kıstas alınacak sütunu belirler.

A yerine B yazarsanız B sütunundaki son veriye göre son satırı belirler.

son = [A65536].End(3).Row + 1
 
S

Skorpiyon

Misafir
Alternatif olarak,

Range("A1").Select 'A sütununda en son boş satıra gitmesi için.
Do while not isempty(Activecell) 'Eğer A1 boş değilse yap
Activecell.offset(1,0).select '1 alt hücreyi seç
Loop 'Boş hücre bulunana kadar döngüyü sürdür.

İlk boş hücre, yani A sütununda ilk boş hücre bulunur. Verileriniz arasında boş bir hücre varsa bu komut o boş hücreye geldiğinde durur. Boşluk yoksa en son kaydın bir altındaki (yani ilk boş hücre) hücreyi seçer.

Range("A1") yerine B1 yazarsanız B sütununda C yazarsanız C sütununda ilk boş hücreyi bulur.
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Benim söylemek istediğim veya yapmak istediğim: Sayfanın belirli sutunlarında formüller var. ve bu formülller sayfanın sonuna kadar iniyor. aceba diyorum sadece B sutunundaki son dolu hücreyi kıyaslamamız mümkün müdür. Yani B sütunundaki en son dolu hücreye baksın ve ondan sonra kayıt yapsın.
 
S

Skorpiyon

Misafir
son = [B65536].End(3).Row

B sütunundaki en son dolu hücreyi verir. Kıyaslamayı buna göre yabalirsiniz .

Örneğin :

if Range("a1") = son then
kodlarınınız....
end if

gibi.
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Hocam kusura bakmayın. Ben şuan "HAZIR KOD" culardanım. Yani siz anlatsanız da ben onu anlayamam. Sadece ben tarif ediyorum. Sizler yapıyorsunuz.(ayrıca bunun içinde çok teşekkür ederim) Yani kendimi geliştirmeye çalışıyorum ama birden olmuyor.

Aşağıda tamamen atmasyon yani deneyerek düzenlediğim şekilde benim istediğim gibi oluyor. Ama bu şekildede sutun kaydırıyor. Mesela Ben TextBox1 deki veriyi B sutununa kaydetmem lazım iken bu şekilde C sutununa kaydediyor. Bunu nasıl düzenlerim.


Sub Kaydet_Click()
Sheets("Personel_Bilgi").Select
Range("B65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
son = [B65536].End(3).Row + 1
Cells(son, "B") = son - 10
'ActiveCell.FormulaR1C1 = "=ROW()-10"
'Selection.Copy
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Application.CutCopyMode = False
ActiveCell.Offset(0, 1).Value = TextBox1.Text
 

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Sn ferhatgurbuz,

Aşağıdaki kodları ayrı ayrı dener misiniz?

Kod:
Private Sub Kaydet_Click()
Sheets("Personel_Bilgi").Select
[B65536].End(xlUp).Offset(1, 0).Select
ActiveCell = TextBox1
End Sub

Kod:
Private Sub Kaydet_Click()
Sheets("Personel_Bilgi").[B65536].End(xlUp).Offset(1, 0) = TextBox1
End Sub
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Mehmet bey ikinci kod ile oldu. Form üzerinde 32 tane TextBox var. Bunlar için nasıl düzenleme yapmam lazım

aşağıdaki gibi denedim oluyor. daha pratik bir yolu vardır diye düşünüyorum.

Private Sub Kaydet_Click()
Sheets("Personel_Bilgi").[B65536].End(xlUp).Offset(1, 0) = TextBox1
Sheets("Personel_Bilgi").[B65536].End(xlUp).Offset(0, 1) = TextBox2
End Sub
 

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Sn ferhatgurbuz,

İlk 5 TextBox için örnek kod veriyorum, işinizi görürse diğerlerine uygularsınız.

Kod:
Private Sub CommandButton1_Click()
son = Sheets("Personel_Bilgi").[B65536].End(3).Row + 1
Cells(son, 2) = TextBox1
Cells(son, 3) = TextBox2
Cells(son, 4) = TextBox3
Cells(son, 5) = TextBox4
Cells(son, 6) = TextBox5
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Private Sub CommandButton1_Click()
sat = Cells(65536, "A").End(xlUp).Row + 1
Cells(sat, "A").Value = TextBox1.Value
End Sub
A kolonuna textbox a girdiğim rakamsal değerleri sırasıyla kayıt ettirmek istiyorum ama hata veriyor. Yardımcı olur musunuz ?
 
Üst