Userformda Otomatik Sıra Verme

Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Merhabalar

Bu konu başlığıyla ilgili benimde bir problemim var bir türlü çözemedim. Yapmak istediğim şey otomatik sıra numarası vermek, fakat sıra numarasının 1den mi 100den mi başlayacağına A2 hücresine yazdığım değerin belirlemesini istiyorum. Örneğin A2 hücresine 200 yazdıysam A3=201, A4=202 şeklinde gitmesini istiyorum.

Desteğinizi rica ediyorum.

TEşekkürler.
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Merhabalar

Bu konu başlığıyla ilgili benimde bir problemim var bir türlü çözemedim. Yapmak istediğim şey otomatik sıra numarası vermek, fakat sıra numarasının 1den mi 100den mi başlayacağına A2 hücresine yazdığım değerin belirlemesini istiyorum. Örneğin A2 hücresine 200 yazdıysam A3=201, A4=202 şeklinde gitmesini istiyorum.

Desteğinizi rica ediyorum.

TEşekkürler.

Merhabalar

Yardımcı olabilecek kimse yokmu

TEşekkürler.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki formül bulunulan satıra göre istediğiniz şekilde numara verir ancak userformda kullanım şekli userformdaki kodlarınıza göre değişir:

=$A$2+SATIR()-2
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Aşağıdaki formül bulunulan satıra göre istediğiniz şekilde numara verir ancak userformda kullanım şekli userformdaki kodlarınıza göre değişir:

=$A$2+SATIR()-2
Merhabalar

aşağıdaki örnek kodlama gönderiyorum. Nereye nasıl yazmam gerektiğini söylermisiniz?

Private Sub CommandButton1_Click()


With Sheets("İhracat_1")

ibs = .Range("A65536").End(3).Row - 1
ibs = .Range("A2").Value + 1






TextBox1.Text = ibs - 1
.Cells(ibs, 1) = ibs - 2
.Cells(ibs, 2) = ComboBox1
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kullandığınnız ibs = .Range("A65536").End(3).Row - 1 ifadesi A sütunundaki son dolu satırdan bir önceki satırın bulunmasına yarıyor. Aşağıdaki gibi kullanırsanız bu değere A2'deki değeri eklemiş olursunuz:

ibs = .Range("A65536").End(3).Row - 1+[A2]

Eğer istediğiniz daha az ya da da fazla olması ise aradaki fark kadar çıkartma ya da ekleme yapabilirsiniz.

ibs = .Range("A65536").End(3).Row - 1+[A2] + 1 yaparsanız 1 fazlası:

ibs = .Range("A65536").End(3).Row - 1+[A2] - 2 yaparsanız 2 eksiği olur.

Kendinize göre uyarlarsınız.
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Kullandığınnız ibs = .Range("A65536").End(3).Row - 1 ifadesi A sütunundaki son dolu satırdan bir önceki satırın bulunmasına yarıyor. Aşağıdaki gibi kullanırsanız bu değere A2'deki değeri eklemiş olursunuz:

ibs = .Range("A65536").End(3).Row - 1+[A2]

Eğer istediğiniz daha az ya da da fazla olması ise aradaki fark kadar çıkartma ya da ekleme yapabilirsiniz.

ibs = .Range("A65536").End(3).Row - 1+[A2] + 1 yaparsanız 1 fazlası:

ibs = .Range("A65536").End(3).Row - 1+[A2] - 2 yaparsanız 2 eksiği olur.

Kendinize göre uyarlarsınız.

Merhaba

Herseyi denedim fakat şimdide A2 satırına 200 yazdığım zaman +200 olarak artıyor. Örneğin A2 satırına 200 yazdığım zaman yeni kayıt yaptığımda kayıt numarası 400 oluyor.

Desteğinizi rica ediyorum.


ibs = .Range("A65536").End(3).Row - 1 + [A2] + 1

TextBox1.Text = ibs - 1

.Cells(ibs, 1) = ibs - -2
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
ibs = .Range("A65536").End(3).Row - 1 + [A2] + 1

Diyelim ki A sütununda son dolu satır 5 ise ve A2'de de 200 yazıyorsa bu kodun vereceği sonuç: 5-1+200+1 = 205 olur. 400 sonucunu vermesi için A sütunundaki son dolu satırın 200. satır olması gerekir. Eğer bu şekilde çözemiyorsanız gerçek bilgilerin olmadığı örnek bir dosya paylaşmanız iyi olur.
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
ibs = .Range("A65536").End(3).Row - 1 + [A2] + 1

Diyelim ki A sütununda son dolu satır 5 ise ve A2'de de 200 yazıyorsa bu kodun vereceği sonuç: 5-1+200+1 = 205 olur. 400 sonucunu vermesi için A sütunundaki son dolu satırın 200. satır olması gerekir. Eğer bu şekilde çözemiyorsanız gerçek bilgilerin olmadığı örnek bir dosya paylaşmanız iyi olur.

Evet çözdüm. Teşekkürler. Bir problemim daha var. Ben otomatik olarak sıra numarası verdiyorum. Fakat şöyle bir problemle karşılaşıyorum. İlk kayıt yapacağım zaman TExtbox1 de kayıt numarası görünmüyor. Ekle butonuna bastığımda +1 olarak görünmeye başlıyor. Yani useformu her açtığımda ilk kayıt numarası görünmüyor ama excele doğru aktarıyor. Nasıl düzeltebilirim. Kodlar aşağıdaki gibidir.

Private Sub CommandButton1_Click()
Me.CommandButton2.Object = True
Dim sil As Control
With Sheets("İhracat_1")
ibs = .Range("A65536").End(3).Row + 1
TextBox1.Text = [A2] + ibs - 1

.Cells(ibs, 1) = [A2] + ibs - 2
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Başka kodlar (örneğin userform initialize) içinde textbox'un visible özelliğini False ya da hidden özelliğini True yapan satır vardır. Onu kontrol eder misiniz?
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Başka kodlar (örneğin userform initialize) içinde textbox'un visible özelliğini False ya da hidden özelliğini True yapan satır vardır. Onu kontrol eder misiniz?
Farklı bir yöntem buldum. Kod aşağıdaki gibi. Fakat şimdide her userformu açtığımda ne kadar kayıt eklesemde ilk kayıtta A2 hücresinden değeri baz alıyor. Sonraki kayıtlar düzeliyor.

Private Sub Userform_Initialize()
TextBox1.Text = [A2]


End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu şekilde çözüme ulaşmamız çok zor. Örnek dosya paylaşın ki hangi kod nerede nasıl bir iş yapıyor bilelim.
 
Katılım
19 Eylül 2017
Mesajlar
0
Excel Vers. ve Dili
-
Yusuf Bey Merhaba
Bu sorunu az önce çözdüm. Desteğiniz için teşekkür ederim. Fakat listbox ile ilgili bir problem yaşıyorum.
Yapmak istediğim şu C sutünündeki verilerden birini textbox'a yazmaya başladığımda listboxa C ve M sütünları arasındanki tüm verileri listboxa getirmesini istiyorum. Yazdığım kodlar aşağıdaki gibi fakat "ListBox1.List(Liste, 3) = isim.Offset(0, -4) '-6" burada hata alıyorum. Bir türlü çözemedim.

Yardımcı olurmusunuz

Private Sub TextBox1_Change()
ListBox1.RowSource = Empty
ListBox1.Clear
ListBox1.ColumnCount = 11
'ListBox2.ColumnHeads = True
For Each isim In Range("C8:C" & Range("C65536").End(xlUp).Row)
If UCase(LCase(isim)) Like UCase(LCase(TextBox1)) & "*" Then
Liste = ListBox1.ListCount
ListBox1.AddItem -1
ListBox1.List(Liste, 3) = isim.Offset(0, -4) '-6
ListBox1.List(Liste, 0) = isim.Offset(0, -3) '-6
ListBox1.List(Liste, 1) = isim.Offset(0, -2) '-5
ListBox1.List(Liste, 2) = isim.Offset(0, -1) '-4
ListBox1.List(Liste, 3) = isim.Offset(0, 0) '-3
ListBox1.List(Liste, 4) = isim.Offset(0, 1) '-2
ListBox1.List(Liste, 5) = isim.Offset(0, 2) '1
ListBox1.List(Liste, 6) = isim.Offset(0, 3) '0
ListBox1.List(Liste, 7) = isim.Offset(0, 4) '1
ListBox1.List(Liste, 8) = isim.Offset(0, 5) '2
ListBox1.List(Liste, 9) = isim.Offset(0, 6) '3
End If
Next
ListBox1.ColumnCount = 11
' ListBox2.ColumnHeads = True
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Çok anlamam ancak o koddaki offset(0,-4) kodu aynı satırda 4 sütun önce demek oluyor. Asıl sütun ise C sütunu yani 3. Sütun. 3. Yani C sütunundan 4 sütun önce herhangi bir sütun olmadığından hata veriyordur muhtemelen. -4'ü kullanabilmek için en az E yani 5. Sütunda işlem yaptırmalısınız. Ya da C sütununda kullanacaksanız -2'den daha küçük bir sayı kullanmamalısınız.
 
Üst