• DİKKAT

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

textbox'a F stünundaki en büyük değeri otomatik olarak yazdırmak?

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Merhaba arkadaşlar;

Ekli dosyada formu açtığınızda Hammadde Giriş sekmesinin altında giriş tarihi yazan textbox8'e tarih yazdıktan mesala (14.04.2010 yazdık ) sonra textbox8'den exit ile çıkıldığında Kontrol numarası yazan textbox9'a gelip textbox8'e yazdığımız tarihin yılını ve ayını alıp birleştiriyor devamına "AR" yazıyor. buraya kadar tamam. bundan sonra AR yazdıktan sonra Giris sheetinde F stünunda daha önce girişi yapılmış kontrol numaralarından "AR" den sonraki beş haneli sayacın en büyüğünün bulup bir fazlasını textbox9'a ekli dosyaya göre
"201004AR00021" yazacak.

Ben burdaki hocaların kodlarından yararlanarak bir şeyler yapmaya çalıştım ama tam olarak istediğim olmadı.
Not: textbox8'e tarih girerken "." işaretini kullanmanıza gerek yok yazarken kendi otomatik "." işaretini koyacaktır.

Bunun için nasıl bir kod yazabilrim.
 

Ekli dosyalar

Bu konu hakkında yardımcı olabilecek bir hocam varmı acaba rica etsem.
 
Textbox8 exit olayındaki kodu aşağıdaki ile değiştirerek deneyin. Doğru işlem yapması için verileri alfabetik sıralı olması gerekir.

Kod:
Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set s1 = Sheets("Giris")
TextBox8 = Format(TextBox8, "dd"".""mm"".""yyyy")
aranan = Format(TextBox8, "yyyymm") & "AR"
ilk = WorksheetFunction.Match(aranan & "*", s1.[f:f], 0)
son = WorksheetFunction.CountIf(s1.[f:f], aranan & "*") + ilk - 1
TextBox9 = aranan & Format(Val(Replace(s1.Cells(son, "f"), aranan, "")) + 1, "00000")
End Sub
 
teşekkürler levent hocam ellerinize sağlık.

Yanlız kodları denidiğimde şöyle bir sorun çıkıyor. Belkide ben ne demek istediğimi size tam olarak anlatamadım.

hangi ay ve yılı girersek girelim her zaman için textbox8'e giren tarihin yılını ve ayını alıp birleştirdikten sonra son F stünunda bulunan son beş hanenin en büyüğünün bir fazlası olacak.

göndermiş olduğunuz kodlarda diyelimki textbox8' 14.05.2010 tarihini girdiğimizde 20100400021 değerini giriyor bu doğru ama eğer 10.03.2010 tarihini girdiğimizde ise textbox9'a 20100300016 değerini yazıyor yani sanırım girilen o tarihe ait olan en büyük son eş haneyi bir arttırıyor. Böyle olmaması lazım. biz textbox8'e 10.03.2010 tarihini girdiğimizde de textbox9'a 20100300021 yazmalı.

kontrol numarasını biraz tanımlayayım size aklınız karışmasın diye. Aşağıdaki kontrol numarasının açılımı şöyle

20100400020 numrasında
2010 girilen yıl
04 girilen ay
00020 ise sayaç olduğunu gösterir

buradaki 00020 belileyici değişkendir. sürekli artarak gider aydan ve yıldan bağımsızdır.
diyelimki örnekte verdiğim numara bizim en son verilen numara olsun. BUndan sonra gelen hammadde için
15.04.2010 tarihi girilmişsse o hammaddeye 2010040021 numarasını verecek.
14.03.2010 tarihi girilmişsse o hammaddeye 2010030021 numarasını verecek.

Tekrar bakabilmenizi rica etsem hocam sizi yoracam ama şimdiden hakkınız helal edin
 
Son düzenleme:
Eğer F sütunundaki veriler her zaman sıralı olacaksa en sondaki hücredeki veriyi bulup, bu verinin sonundaki sayıyı alıp bir ekleyerek diğer verilerle birleştirebilirsiniz.
 
Levent Hocam;

F stünundaki veriler sıralı olmayacak karışık olabilir bu yüzden o koda ihtiyacım var zaten. :(
 
Bu durumda yazılacak bir formülle en büyük değeri bularak bunu kod içinde kullanmak en pratik çözüm gibi görünüyor. Dosyanızda G1 hücresine F sütununda maksimum değeri bulan bir fonksiyon yazdım. Daha sonra bu fonksiyonla elde edilen değeri kod içinde kullandım. Bu bir dizi fonksiyonu olması sebebiyle direk kod içinde kullanılamıyor, yada ben yöntemini bilmiyorum. Ama bu şekilde işinizi görecektir. Yapmanız gereken G1 hücresindeki formülün silinmemesini sağlamaktır.

Formülün yazımında desteğini esirgemeyen Sn muygun ve Sn Korhan beye ayrıca teşekkür etmek istiyorum.
 

Ekli dosyalar

merhaba
alternatif olarak bunu deneyiniz

tanımlı ad formülü
Kod:
=KAYDIR(Giris!$F$3;0;0;BAĞ_DEĞ_DOLU_SAY(Giris!$F:$F)-1;1)
G2 hücre formülü
Kod:
=MAK(SAĞDAN(alan_adı;5)*1)

not:
dizi formülüdür
 
Sayın Levent Hocam;

Öncelikle zamanında cevap yazamadığım için özür dilerim işlerimden dolayı şehir dışındaydım.

Çok çok teşekkür ederim. Kodlarınızı aldım dediğiniz gibi çalışmakta hakkınızı helal edin yordum sizi.

Not: Uzmanamele hocam sizede teşekkür ederim.
 
Levent Hocam;

Bu durumda yazılacak bir formülle en büyük değeri bularak bunu kod içinde kullanmak en pratik çözüm gibi görünüyor. Dosyanızda G1 hücresine F sütununda maksimum değeri bulan bir fonksiyon yazdım. Daha sonra bu fonksiyonla elde edilen değeri kod içinde kullandım. Bu bir dizi fonksiyonu olması sebebiyle direk kod içinde kullanılamıyor, yada ben yöntemini bilmiyorum. Ama bu şekilde işinizi görecektir. Yapmanız gereken G1 hücresindeki formülün silinmemesini sağlamaktır.

Formülün yazımında desteğini esirgemeyen Sn muygun ve Sn Korhan beye ayrıca teşekkür etmek istiyorum.

F stünu için vermiş olduğunuz formül,

Kod:
=MAK(SAĞDAN(DOLAYLI("F3:F"&65537-BOŞLUKSAY(F:F));5)*1)

ben I stununa göre değiştirmek istedim ve aşağıdaki gibi değiştirdim.

Kod:
=MAK(SAĞDAN(DOLAYLI("I3:I"&65537-BOŞLUKSAY(I:I));5)*1)

ama formülün olduğu hücerede #DEĞER! hatası veriyor.

aynı mantıkla I stünunda formülün çalışması için ne yapabilirim?
 
Fonksiyonu F2+ctrl+shift+enter ile dizi fonksiyonu haline getirmeniz gerekir.
 
Teşekkürler hocam
 
Geri
Üst