• DİKKAT

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

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.
 
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.
 
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
 
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
 
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.
 
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
 
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.
 
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
 
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?
 
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
 
Bu şekilde çözüme ulaşmamız çok zor. Örnek dosya paylaşın ki hangi kod nerede nasıl bir iş yapıyor bilelim.
 
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
 
Ç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.
 
Geri
Üst