• DİKKAT

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

Sıralama Problemi

Katılım
28 Şubat 2009
Mesajlar
15
Excel Vers. ve Dili
Excel 2010

Türkçe
Merhabalar ;

Belki de çok basit bir konu ama şuan excel de bir hayli yeniyim ve yardım almadan işin içinden çıkamayacağıma kani oldum...

Problemim şu ;

Textbox ya da combobox üzerinden aldığım veriyi başka bir sayfadaki sütuna kopyalayabiliyorum...Ancak , aynı textbox ya da combobox a yeni bir veri girdiğimde bir önceki verinin üzerine yazıyor...

Örneğin range("A:A")= Textbox1.text diye girdiğimde her yeni giriş bir önceki girişi siliyor...Bense biraz uydurarak;

dim i as integer

i=1

range("Ai:Ai") ile başlayayıp sonra for döngüsüyle i'yi arttıran bir makro yazmayı denedim.Ancak range("Ai:Ai") gibi bir kod girişini VB kabul etmedi..

Ne yapmam gerekiyor ? ? ? :S

Yardımcı olursanız çok sevinirim...
 
Sayın xmydnx,
Kod:
Range("A1:A" & i)
olarak deneyin.
 
Son düzenleme:
Dosya eklemiyorsanız kullandığınız kodları bari tam olarak buraya yükleyin ki ne nerde nasıl iş yapıyor görmek mümkün olsun.
 
Eğer A sütununu Sıra No ve B sutununu Veri girişi yamak için Kullandığınızı varsayarsak bu kodu deneye bilirsiniz.


Dim son, deg, s As Integer
son = Cells(65536, "B").End(xlUp).Row + 1
Cells(son, "B") = TextBox1
[A2:A65536] = Empty
deg = WorksheetFunction.CountA(Range("B2:B65536"))
s = 1
Do While [B2] <> ""
Cells(s + 1, "A") = s
s = s + 1
If s > deg Then Exit Do
Loop
 
Sayın bedersu,cems ve Emsdmr,

Alakanız için öncelikle teşekkür ederim.Ancak problemim biraz daha karışık.

Ekli dosyada mevhumumu daha detaylı anlatabilmek için bir örnek gönderdim.


bedersu nun "i" değişkenini range içine koyma ile ilgili kodunu denedim ama işin içinden çıkamadım...Dolayısıyla bu ekli dosyada en sade halini gönderiyorum(hiçbir döngü olmaksızın...Ayrıca makro olarak kaydetmedim...Ancak visual basicte yapmaya çalıştığım form ve kodları kayıtlı...)
 

Ekli dosyalar

sayın xmydnx,
Dosyanızı inceledim.Dediğiniz gibi aslında yapılamayacak bir şey yok gibi duruyor.Şu an için en büyük problem sorununuzu anlayamamamız.Tam olarak ne yapmak istediğinizi ekli dosyanızdaki verileri referans vererek açık bir şekilde anlatırsanız yarımcı olabiliriz.
Benim gördüğüm sıkıntı aşağıdaki kodlarda:
Kod:
Range("A2:A25").Replace What:="ahmet", Replacement:=TextBox1.Text

Başlat butonuna bir defa tıklarsanız kodlar sorunsuz bir şekilde çalışır fakat ikinci kez tıkladığınızda artık veri değiştiği için "ahmet" bulunamaz ve dolayısıyla değiştirilemez.Öncelikle bunu halletmeniz gerekiyor diye düşünüyorum.Yanlış anladığım bir yer varsa lütfen uyarın ve doğrusunu açıklayın.
 
Sayın bedersu ;

Elbette haklısınız
Range("A2:A25").Replace What:="ahmet", Replacement:=TextBox1.Text

yazıldığı zaman tabiki üzerine yazacaktır...Zaten bu kodlarla olamayacağının farkındayım yazmıştım excel dosyasındakiaçıklama kısmının en üstüne...Ancak ne yapcağımı da bilmiyorum...Elim kolum bağlandı...O yüzden "i" ler ile birşeyler yapmayı denedim...Hatta sizin verdiğiniz kodu denedim ama içinden çıkamadım...

Eklediğim dosyadaki ile kesinlikle elde edebiyeceğim bir sonuç talep ettiğim bunun farkındayım...Sadece bir örnek istedi "cems" ben de iş yerinde hızlıca bunu hazırlayıverdim...
 
sayın xmydnx,
Dosyada açıklama göremedim.Sizin istediğiniz aranan veriyi mi değişken yapmak acaba?Yani her başlat butonuna tıklandığında hücredeki isimler belirlenecek,bu isimler aranacak ve textbox'a girilen değer ile değiştirilecek.Bu şekilde mi istiyorsunuz?Yoksa sayfa2'den isimleri kopyalayıp sayfa1'e yapıştırdıktan sonra ikinci kez butona basılınca aynı isimlerin değiştirilen isimlerin en altına sırayla yapıştırılıp daha sonra da textbox'taki verilerle mi değiştirmek istiyorsunuz? Biraz daha açıklayıcı bilgi verirseniz memnun olurum.
 
ilk sayfanın O sütunundan itibaren açıklama koymuştum...

Aynısını Kopyalıyorum.
İstediğim şeyin bu kodlarla olamayacağı çok açık :)

Ancak yapmak istediğim şey şu ;

Küme1 ya da Küme2 den alınacak değerler değiştirilerek DEĞİŞEN başlığı altına girecek…Diğer textboxlara girilen değerler de Değişen sayısınca yanına eklenecek.

Yeni bir küme üzerinde değişiklik yapıldığında ise A sütununda en son boş kalan yere yazılmaya devam edecek...

Bul-Değiştir komutu ile de yapılabileceğini biliyorum ancak
sütunları alt alta dizme işlemini el ile yapmak durumunda kalacağım...Kaldı ki buna benzer 10 binlerce data üzerinde değişiklik yapmak ve B-C sütunları gibi bir çok sütuna da ekleme yapmak durumundayım...

Buradaki DEĞİŞEN-İL KODU-KATEGORİ başlıkları şuanda uydurduğum şeyler...O yüzden anlamsız gelebilir.Orjinal dosyam kişisel PC'm de o ise benden uzakta şuanda...

Ancak yapmak istediğim şey buradaki ile aynı...Sadece değişecek değer , küme sayısı ve sabit veri girişi olan sütun sayım fazla..

istediğim şeyi sayfa3 de göstermeye çalıştım...

ÇÖZÜMÜ OLABİLİR Mİ Kİ ACABA ? ? ? ? :s
 
Herkese teşekkürler...

Sayın Emsdmr size de ayrıca teşekkür ederim...Kodları deneme fırsatını ancak bulabildim...İşimi eksiksiz yerine getirdi...
 
Tekrar merhaba ;
Aşağıdaki kodları kullanarak problemimi çözmüştüm.Şuanda da bu kodları kullanıyorum...

Dim son, deg, s As Integer
son = Cells(65536, "B").End(xlUp).Row + 1
Cells(son, "B") = TextBox1
[A2:A65536] = Empty
deg = WorksheetFunction.CountA(Range("B2:B65536"))
s = 1
Do While [B2] <> ""
Cells(s + 1, "A") = s
s = s + 1
If s > deg Then Exit Do
Loop

Ancak birkaç sorum daha olacak eğer mümkün ise cevaplamanız...

Birincisi bu kodlardaki A yerine C , B yerine de E yazdığım zaman program hata veriyor.Fakat yalnızca B yi değiştirip E yaptığımda bir hata ile karşılaşmıyorum...Sıralama kısmını illaki A sütunundan itibaren mi yapmak zorundayım ?

İkinci olarak, Ben D sütununa Stok kelimesi ile beraber sıralama yapmak istesem (1,2,3,4 vs şeklinde değil de , Stok1, Stok2 , Stok3 , Stok4 olarak...) Böyle birşey mümkün olabilir mi?
 
Merhaba

Aşağıdaki Kodlar Verilerinizi C ve E sütunlarına aktarır.

Dim son, deg, s As Integer
son = Cells(65536, "E").End(xlUp).Row + 1
Cells(son, "E") = TextBox1
[C2:C65536] = Empty
deg = WorksheetFunction.CountA(Range("E2:E65536"))
s = 1
Do While [E2] <> ""
Cells(s + 1, "C") = s
s = s + 1
If s > deg Then Exit Do
Loop
 
Yahu utandım valla :) Gene yetiştin imdadıma teşekkürler..

Ben CountA' daki A'yı da C yapıyordum :s ...Ondan hata veriyormuş meğersem...

Stok ya da başka bir kelime ile saydırma konusunda birşey yapabilir miyiz peki ?
 
Kırmızı Renkli satırları kodunuza Ekleyin

Dim son, deg, s As Integer
son = Cells(65536, "E").End(xlUp).Row + 1
Cells(son, "E") = TextBox1
[C2:C65536] = Empty
deg = WorksheetFunction.CountA(Range("E2:E65536"))
s = 1
Do While [E2] <> ""
Cells(s + 1, "C") = s
s = s + 1
If s > deg Then Exit Do
Loop
Range("C:C").Select
Selection.NumberFormat = """stok""####"
Range("C1").Select


iyi çalışmalar
 
Ya hu ne diyeyim ki şimdi bilemedim Emsdmr...Allah razı olsun :)

Nerdeyse sıfır excel bilgimle excel öğrendim sayenizde...Sıralama problemim kalmadı artık.

Çok teşekkürler...
 
Rica ederim yardımcı olabildiysek ne mutlu
iyi çalışmalar
 
Geri
Üst