B sütunundaki veri sayısına göre A sütununa formül kop

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,239
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

Bu konuyla ilgili aşağıdaki kodu denedim ama başarılı olamadım. Acaba nerde hata yapıyorum? Bu işlemdeki amacım B sütunundaki dolu satır sayısı kadar formülle sıra numarası verdirmek.

Sheets("SAYFA1").Select
Range("B65536").End(xlUp).Select
For i = TextBox5.Text To TextBox6.Text
Range("B2").Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0) = TextBox1.Text
ActiveCell.Offset(0, 1) = TextBox2.Text
ActiveCell.Offset(0, 2) = TextBox3.Text
ActiveCell.Offset(0, 3) = i
ActiveCell.Offset(0, 4) = TextBox4.Text
ActiveCell.Offset(0, 5) = "EVET"

SAY = WorksheetFunction.CountA(Sheets("SAYFA1").[B2:B65536])
Range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",ROW()-1,"""")"
Range("A2").Select
Selection.Copy
Range("A2:A" & SAY).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Next

Range("B2").Select
TextBox1 = Date
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox1.SetFocus
Call UserForm_Initialize
MsgBox ("Kayıt ekleme işlemi tamamlanmıştır."), vbInformation, "DİKKAT !"

End If
End If
End Sub

İyi çalışmalar dilerim. :hey:
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
merhaba
ben sıra numarası verdirirken count ifadesini kullanmanın pey uygu olmayacağını
düşünüyorum.
neden?
çünkü icap edip aradan bir kayıt silindiğinde silinen satırdan sonraki numaraları
tekrar oluşturmak gerekecek.
onun yerine,,

ActiveCell=val(ActiveCell.Offset(-1,0))+1
şu an kaydedilen satırın bir önceki satırınının bir fazlası
şeklinde bir ifade bence daha doğru olur.
böylece aradan silinen kayıtlar sorun oluşturmaz.
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
hatta bence şöyle değiştir..

Sheets("SAYFA1").Select
Range("A65536").End(xlUp).Select
For i = TextBox5.Text To TextBox6.Text

ActiveCell.Offset(1, 0).Select
ActiveCell=val(ActiveCell.offset(-1,0).text)+1

ActiveCell.Offset(0,1) = TextBox1.Text
ActiveCell.Offset(0, 2) = TextBox2.Text
ActiveCell.Offset(0, 3) = TextBox3.Text
ActiveCell.Offset(0, 4) = i
ActiveCell.Offset(0, 5) = TextBox4.Text
ActiveCell.Offset(0, 6) = "EVET"


Next

Range("B2").Select
TextBox1 = Date
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox1.SetFocus
Call UserForm_Initialize
MsgBox ("Kayıt ekleme işlemi tamamlanmıştır."), vbInformation, "DİKKAT !"

End If
End If
 
Üst