[Çözüldü] - Sayı çoğaltmak

Excel hakkındaki soru ya da paylaşımlarınıza kategori bulamadıysanız bu alana yazabilirsiniz.

[Çözüldü] - Sayı çoğaltmak

İleti#1)  hassan26 » 04 Şub 2010 21:35

Selam arkadaşlar.
Sorumu örnek tabloda da yazdım sayıları çoğaltma işlemi otomatik yapmak istiyorum ama başına metinsel ifade mevcut.
Excel tablosunda yana doğru sürükleme ile rakamları sıralı şekilde dizme işlemini Makro kaydet yöntemi ile modülde oluşan formülü
Range("B4").Select
Selection.AutoFill Destination:=Range("B4:CW4"), Type:=xlFillDefault

1.Hücre ismi belirtmeden aktif olan hücreye göre çalışmasını sağlayabilirmiyiz ekteki dosyada kaydete basınca ilgili hücreye değer aktarılınca akabinde butona yazılacak bir kodla çoğaltma işlemi olabilirmi
2.Worksheet_SelectionChange olayına yazılırmı
3.Sayacı aktif hücre gösterip döngüyle yapılabilirmi.
Saygılar.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
hassan26
Siteye Alışmış
 
Adı Soyadı:Hasan
Kayıt: 07 Tem 2009 18:03
Konum: istanbul
Meslek: memur
Yaş: 49
İleti: 189
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: B.evler/İST.

Cevap: Sayı çoğaltmak

İleti#2)  Emrah ÇANAKKALE » 05 Şub 2010 06:52

Merhaba, CheckBox click olayındaki kodları değiştirerek listedeki son sayıdan bir büyük seri olmasını sağladım. Kayıt butonu altındaki kodları düzenliyerek serili bir şekilde kaydetmesini sağladım. İlgili kodları alttakilerle değiştirip denermisiniz. ;)

Kod: Tümünü seç
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
For i = Sheets("STOK").Range("B65536").End(3).Row To 2 Step -1
If Left(Cells(i, 2), 2) = "M-" Then
TextBox15.Enabled = True
TextBox15 = "M-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 100
TextBox16 = "M-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 199
GoTo atla
End If
If i = 2 Then
'ilk girişse alt değer veriyoruz.
TextBox15.Enabled = True
TextBox15 = "M-94001"
TextBox16 = "M-94100"
End If
Next i
atla:
CheckBox2.Enabled = False
CheckBox3.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox2.Enabled = True
CheckBox3.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2 = True Then
For i = Sheets("STOK").Range("B65536").End(3).Row To 2 Step -1
If Left(Cells(i, 2), 2) = "K-" Then
TextBox15.Enabled = True
TextBox15 = "K-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 100
TextBox16 = "K-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 199
GoTo atla
End If
If i = 2 Then
'ilk girişse alt değer veriyoruz.
TextBox15.Enabled = True
TextBox15 = "K-94001"
TextBox16 = "K-94101"
End If
Next i
atla:
CheckBox1.Enabled = False
CheckBox3.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox1.Enabled = True
CheckBox3.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CheckBox3_Click()
If CheckBox3 = True Then
For i = Sheets("STOK").Range("B65536").End(3).Row To 2 Step -1
If Left(Cells(i, 2), 2) = "S-" Then
TextBox15.Enabled = True
TextBox15 = "S-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 100
TextBox16 = "S-" & Right(Cells(i, 2), Len(Cells(i, 2)) - 2) + 199
GoTo atla
End If
If i = 2 Then
'ilk girişse alt değer veriyoruz.
TextBox15.Enabled = True
TextBox15 = "S-94001"
TextBox16 = "S-94101"
End If
Next i
atla:
CheckBox2.Enabled = False
CheckBox1.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox2.Enabled = True
CheckBox1.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CommandButton30_Click()
Dim s As Integer
s = 1
If TextBox15.Value = "" Then
MsgBox "Boş Bırakırsanız Kayıt Yapılmaz."
Exit Sub
End If
If WorksheetFunction.CountIf(Sheets("STOK").Range("B2:B65536"), TextBox15.Text) > 0 Then
MsgBox "Yazdığınız Bu Seri Zaten kayıtlı."
Exit Sub
End If
Son = Sheets("STOK").Range("B65536").End(3).Row + 1
Sheets("STOK").Cells(Son, 1).Value = _
WorksheetFunction.Max(Sheets("STOK").Range("A2:A65536")) + 1
For k = Right(TextBox15, Len(TextBox15) - 2) To Right(TextBox16, Len(TextBox15) - 2)
s = s + 1
Sheets("STOK").Cells(Son, s).Value = Left(TextBox15, 2) & k
Next k
MsgBox "Kayıt Tamam."
TextBox15.Value = "": TextBox16.Value = ""
End Sub
İletilerinizde Türkçemizi koruma ve formumuzun kuralları gereği yazım kurallarına özen gösteriniz. Form kurallarına uymayan sorulara yanıt verilmiyor.

FORUM KURALLARI : viewtopic.php?f=28&t=101

20 . Türkçe yazım kurallarında; cümlede kelimelerin ilk harfi büyük olur, özel isimlerin baş harfi büyük olur, noktadan sonra başlayan her kelimenin baş harfi büyük olur, mesaj içindeki tüm harfler büyük yazılmaz yahut tümü küçük yazılmaz.
Kullanıcı avatarı
Emrah ÇANAKKALE
Site Dostu
 
Adı Soyadı:Emrah Çanakkale
Kayıt: 24 Oca 2009 12:30
İleti: 1224
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Sayı çoğaltmak

İleti#3)  hassan26 » 05 Şub 2010 19:00

Sayın ÇANAKKALE ilginize teşekkür ederim güzel olmuş, ancak yazılacak sayılar aynı seri değil farklı olacak.
1.Sayı yazımı serbest bırakılamazmı
2.Sayıyı manuel değiştirince hata veriyor.
3.Kırmızı veya sarı seçilince en küçük sayıyı baz alıyor.
Birde sayfaya yazdığım sayılar örnekti bunların milyon basamaklı oalnlarıda mevcut yani textboxlarda o değerler sabit olmamalı
İşlem güzel ama istediğim; başında metin ifadesi olan herhangi bir seri no yazılabilir. Sayıyı kullanıcı girsin idi.
Sadece yazılanı sağa doğru çoğaltarak 100 kolona tamamlatmak.
Saygılar.
Kullanıcı avatarı
hassan26
Siteye Alışmış
 
Adı Soyadı:Hasan
Kayıt: 07 Tem 2009 18:03
Konum: istanbul
Meslek: memur
Yaş: 49
İleti: 189
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: B.evler/İST.

Cevap: Sayı çoğaltmak

İleti#4)  Emrah ÇANAKKALE » 05 Şub 2010 20:35

Alttaki kodları denermisiniz ?

Kod: Tümünü seç
For i = 1 To Len(textbox15)
If IsNumeric(Right(textbox15, i)) = False Then sayi = Right(textbox15, i - 1): GoTo atla
Next i
atla:
Son = Sheets("STOK").Range("B65536").End(3).Row + 1
sayi = Abs(sayi)
For k = 2 To 102
Sheets("STOK").Cells(Son, k).Value = Left(textbox15, Len(textbox15) - Len(sayi)) & sayi
sayi = sayi + 1
Next k
İletilerinizde Türkçemizi koruma ve formumuzun kuralları gereği yazım kurallarına özen gösteriniz. Form kurallarına uymayan sorulara yanıt verilmiyor.

FORUM KURALLARI : viewtopic.php?f=28&t=101

20 . Türkçe yazım kurallarında; cümlede kelimelerin ilk harfi büyük olur, özel isimlerin baş harfi büyük olur, noktadan sonra başlayan her kelimenin baş harfi büyük olur, mesaj içindeki tüm harfler büyük yazılmaz yahut tümü küçük yazılmaz.
Kullanıcı avatarı
Emrah ÇANAKKALE
Site Dostu
 
Adı Soyadı:Emrah Çanakkale
Kayıt: 24 Oca 2009 12:30
İleti: 1224
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Sayı çoğaltmak

İleti#5)  hassan26 » 05 Şub 2010 22:44

Verdiğiniz Kodları aşağıdaki gibi uyguladım istediğim gibi oldu.
Teşekkür ediyorum.
Bir şey daha rica etsem (Olursa tabiki)
Bu TextBox15'e sayıyı yazınca sayı kaç olursa olsun +100 ekleyerek TextBox16'ya değeri yazarmı kaydet butonuna basmadan önce. Yani kullanıcı K-5168101 yazdı hemen TextBox16'da K-5168200 belirmesi gibi
Kod: Tümünü seç
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
TextBox15.Enabled = True
TextBox15 = "M-"
TextBox16 = "M-"
CheckBox2.Enabled = False
CheckBox3.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox2.Enabled = True
CheckBox3.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2 = True Then
TextBox15.Enabled = True
TextBox15 = "K-"
TextBox16 = "K-"
CheckBox1.Enabled = False
CheckBox3.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox1.Enabled = True
CheckBox3.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CheckBox3_Click()
If CheckBox3 = True Then
TextBox15.Enabled = True
TextBox15 = "S-"
TextBox16 = "S-"
CheckBox1.Enabled = False
CheckBox2.Enabled = False
Else:
TextBox15 = ""
TextBox16 = ""
CheckBox1.Enabled = True
CheckBox2.Enabled = True
TextBox15.Enabled = False
End If
End Sub

Private Sub CommandButton30_Click()
Dim s As Integer
s = 1
If TextBox15.Value = "" Then
MsgBox "Boş Bırakırsanız Kayıt Yapılmaz."
Exit Sub
End If
If WorksheetFunction.CountIf(Sheets("STOK").Range("B2:B65536"), TextBox15.Text) > 0 Then
MsgBox "Yazdığınız Bu Seri Zaten kayıtlı."
Exit Sub
End If
Son = Sheets("STOK").Range("B65536").End(3).Row + 1
Sheets("STOK").Cells(Son, 1).Value = _
WorksheetFunction.Max(Sheets("STOK").Range("A2:A65536")) + 1
For i = 1 To Len(TextBox15)
If IsNumeric(Right(TextBox15, i)) = False Then sayi = Right(TextBox15, i - 1): GoTo atla
Next i
atla:
Son = Sheets("STOK").Range("B65536").End(3).Row + 1
sayi = Abs(sayi)
For k = 2 To 101
Sheets("STOK").Cells(Son, k).Value = Left(TextBox15, Len(TextBox15) - Len(sayi)) & sayi
sayi = sayi + 1
Next k
End Sub
Private Sub TextBox15_Change()
If Len(TextBox15) > 2 And Not IsNumeric(Right(TextBox15, 1)) = True Then
    Application.SendKeys "{BACKSPACE}"
    End If
    TextBox15.SelStart = Len(TextBox15)
    Sheets("STOK").Select
Columns("B:B").Select
On Error Resume Next
   Selection.Find(What:=TextBox15.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    True, SearchFormat:=False).Activate
TextBox16.Value = ActiveCell.Offset(0, 99).Value

End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
hassan26
Siteye Alışmış
 
Adı Soyadı:Hasan
Kayıt: 07 Tem 2009 18:03
Konum: istanbul
Meslek: memur
Yaş: 49
İleti: 189
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: B.evler/İST.

Cevap: Sayı çoğaltmak

İleti#6)  Emrah ÇANAKKALE » 06 Şub 2010 12:37

Textbox15'e sayıyı yazdıktan sonra entera basın.

Kod: Tümünü seç
Private Sub TextBox15_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
For i = 1 To Len(TextBox15)
If IsNumeric(Right(TextBox15, i)) = False Then sayi = Right(TextBox15, i - 1): GoTo atla
Next i
atla:
sayi = Abs(sayi) + 100
TextBox16.Text = Left(TextBox15, Len(TextBox15) - Len(sayi)) & sayi
End Sub
İletilerinizde Türkçemizi koruma ve formumuzun kuralları gereği yazım kurallarına özen gösteriniz. Form kurallarına uymayan sorulara yanıt verilmiyor.

FORUM KURALLARI : viewtopic.php?f=28&t=101

20 . Türkçe yazım kurallarında; cümlede kelimelerin ilk harfi büyük olur, özel isimlerin baş harfi büyük olur, noktadan sonra başlayan her kelimenin baş harfi büyük olur, mesaj içindeki tüm harfler büyük yazılmaz yahut tümü küçük yazılmaz.
Kullanıcı avatarı
Emrah ÇANAKKALE
Site Dostu
 
Adı Soyadı:Emrah Çanakkale
Kayıt: 24 Oca 2009 12:30
İleti: 1224
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Sayı çoğaltmak

İleti#7)  hassan26 » 07 Şub 2010 13:36

Emrah bey teşekkür ediyorum.
Saygılar.
Kullanıcı avatarı
hassan26
Siteye Alışmış
 
Adı Soyadı:Hasan
Kayıt: 07 Tem 2009 18:03
Konum: istanbul
Meslek: memur
Yaş: 49
İleti: 189
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: B.evler/İST.


Forum Diğer Excel İşlemleri

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe