• DİKKAT

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

Hücre Ayarlama

Katılım
22 Mayıs 2009
Mesajlar
1,017
Excel Vers. ve Dili
Office 2003
Üstadlarım;
D8 Hücresine Userform ile Girdiğimiz verileri ( ) otomotik olarak parantez arasına nasıl alabiliriz
 
Üstadlarım;
D8 Hücresine Userform ile Girdiğimiz verileri ( ) otomotik olarak parantez arasına nasıl alabiliriz

Userform ile veri girilirde hangi nesnedeki veri?Userformda bir nesne olur.O nesne deki veri girilir.
Bu nesne label,olabilir,textbox olabilir,listview olabilir,combobox olabilir,spreadsheet,aklıma bunlar geliyor.Haa userfromdaki captionda olabilir.Userformun Tag'ı olabilir.Userformun ismi olabilir.
Sonra nasıl veriyi hangi nesne ile giriyorsunuz.Mesela textboxtan girilen her veri excele metin olarak kaydedililr.Sayıda girseniz metin kaydedilir.Tarih içinde ayni şey.Eğer sayı girecekseniz range("D8").value=cdbl(textbox1.text) şeklinde girmelisiniz.
Dikkat edin cdbl fonksiyonunu kullandım.Asla val fonksiyonu kullanmayın.Eğer tamsayıya çevirme yapacaksanız Int fonksiyonunu kullanınız.Ondalıklı sayılarada(türkçe versiyonlarda) hatalı sonuç üretiyor.
Tabii tarih içinde cdate fonksiyonunu ona keza.
Gördünüzmü siz bir satır ile soru sordunuz .Ben ise seze cevap verebilmek için k40 satır yazı yazdım.
Kolay gelsin.:cool:
 
Evren Abi
Office programlarında kendinizi kanıtlamış saygı duyduğum ve imrendiğim bir ağabeyimsiniz.
Bazen "Evren GİZLEN" in başlattığı ya da cevapladığı konulara bakıyorum inceliyorum.
Excel denilen derya da kulaç atmaya başladığım andan bu yana eğer birşeyler yapmaya çalışıyorsam inanın sizin gibi bilgi ehli kişilerin açtığı yoldan yavaş yavaş da olsa yürüyerek gerçekleştirilmiştir.
Evren Abi ;
Ben yanlış yapmaya eğimli bir excel talebesiyim. Usta Çırak ilişkisinde benim yanlışlarım üstadların gösterdiği doğru ile düzelecek.
Yine de hakkınızı helal edin. Ayrıca " Val " fornksiyonunu bir kere kullandım sizden uyarı alınca tövbe ettim.
 
Userform ile veri girilirde hangi nesnedeki veri?Userformda bir nesne olur.O nesne deki veri girilir.
Bu nesne label,olabilir,textbox olabilir,listview olabilir,combobox olabilir,spreadsheet,aklıma bunlar geliyor.Haa userfromdaki captionda olabilir.Userformun Tag'ı olabilir.Userformun ismi olabilir.
Sonra nasıl veriyi hangi nesne ile giriyorsunuz.Mesela textboxtan girilen her veri excele metin olarak kaydedililr.Sayıda girseniz metin kaydedilir.Tarih içinde ayni şey.Eğer sayı girecekseniz range("D8").value=cdbl(textbox1.text) şeklinde girmelisiniz.
Dikkat edin cdbl fonksiyonunu kullandım.Asla val fonksiyonu kullanmayın.Eğer tamsayıya çevirme yapacaksanız Int fonksiyonunu kullanınız.Ondalıklı sayılarada(türkçe versiyonlarda) hatalı sonuç üretiyor.
Tabii tarih içinde cdate fonksiyonunu ona keza.
Gördünüzmü siz bir satır ile soru sordunuz .Ben ise seze cevap verebilmek için k40 satır yazı yazdım.
Kolay gelsin.:cool:

Selam Sayın Evren Gizlen,

"Asla Val kullanmayın" diyorsunuz. metni sayıya çevirmek için neyi ve nasıl kullanacağız?
mesela ben
şöyle bir işlem yapıyorum.

Kod:
If veri.Cells(i, "I") = "BS" Then
fg = "1"
Else
fg = "0,5"
End If

s1.Cells(i, "j") = Val(fg) * Val(Mid(veri.Cells(i, "J"), 1, 3)) * Val(Mid(veri.Cells(i, "J"), 5, 3))

Val yerine Cdbl kullanırsam Mid kodlarının sonucu yok ise kodlar hata veriyor.
Val kullanırsam yok'u 0 (sıfır) kabul edince hata vermiyor. sonuç sıfır veriyor. benim de istediğim bu idi.
Peki, en doğru olanı ne olmalıdır?

küsüratlı metni (örn. "12,34567") yine küsüratlı sayı olarak yani 12,34567 Val ile çevrilmez mi?
Val nedir?
Cdbl nedir?
Int nedir?
kısaca izah edebilirseniz çok sevinirim
 
Selam Sayın Evren Gizlen,

"Asla Val kullanmayın" diyorsunuz. metni sayıya çevirmek için neyi ve nasıl kullanacağız?
mesela ben
şöyle bir işlem yapıyorum.

Kod:
If veri.Cells(i, "I") = "BS" Then
fg = "1"
Else
fg = "0,5"
End If

s1.Cells(i, "j") = Val(fg) * Val(Mid(veri.Cells(i, "J"), 1, 3)) * Val(Mid(veri.Cells(i, "J"), 5, 3))

Val yerine Cdbl kullanırsam Mid kodlarının sonucu yok ise kodlar hata veriyor.
Val kullanırsam yok'u 0 (sıfır) kabul edince hata vermiyor. sonuç sıfır veriyor. benim de istediğim bu idi.
Peki, en doğru olanı ne olmalıdır?

küsüratlı metni (örn. "12,34567") yine küsüratlı sayı olarak yani 12,34567 Val ile çevrilmez mi?
Val nedir?
Cdbl nedir?
Int nedir?
kısaca izah edebilirseniz çok sevinirim

Orada yazdım.
Elbette metni sayısal bir değere çevirmeye kalkınca hata oluşur.
O zaman ne yapmak lazım,Üzerinde işlem yapıcağınız değeri sorgulamanız lazım.
Sayısalmı değilmi.Eğer sayısalsa işlemi yap,değilse yapma.Val fonksiyonu sayısal bir değer değilse 0 gösteriyor.Ama sırf bu yüzden hatalı sonuçlar üreten bir şeyi niye kullanacaksınız.Onu anlamıyorum.Kod yazımında en büyük ağırlı yazdığınız kodların nesnelerin kontrolu tutar.Yoksa yazacağınız kod 5-10 satırdır bu bişey değildir.
Esas iş bunların kontroludur .Eğer sayı alacaksanız sayımı değlmi.Metin alacaksanız istediğiniz metinmi ?Combobox istediğiniz indextemi.Falan falan falan.
Belkide 5 satır veri yazacaksınızdır ama 15 nesneyi kontrol kodu yazacaksnızdır.
Ben öyyle yapıyorum.Mecburen.
On errro resume de kullanabilirsiniz ama onuda kontrol etmek lazım.İşiniz bitince on erroru on error goto 0 ile sfırlamnız lazım.Yani yok etmeniz lazım.
cdbl uzun Ondalıklı sayılar için.Csngl kısa ondalıklı sayılar için.Forumda bu konular geniş şekilde anlatıldı.Arama yaparsanız bulabilirsiniz.Değişken tanımları diye arayınız.:cool:
Clng uzun tam sayılar için,Cint kısa tamasalar için(32 bin küsüurun altında),Cbayt 256 pozitif tam sayı için,Cdate Tarih için
örnek :
Texboxlardaki değerler metindir.Ama sayıda içerebilir.İçinde sayı olup olmadığını kontrol et.
if isnumeric(Textbox1.text) then
'İşlemleri yap
end if
 
Orada yazdım.
Elbette metni sayısal bir değere çevirmeye kalkınca hata oluşur.
O zaman ne yapmak lazım,Üzerinde işlem yapıcağınız değeri sorgulamanız lazım.
Sayısalmı değilmi.Eğer sayısalsa işlemi yap,değilse yapma.Val fonksiyonu sayısal bir değer değilse 0 gösteriyor.Ama sırf bu yüzden hatalı sonuçlar üreten bir şeyi niye kullanacaksınız.Onu anlamıyorum.Kod yazımında en büyük ağırlı yazdığınız kodların nesnelerin kontrolu tutar.Yoksa yazacağınız kod 5-10 satırdır bu bişey değildir.
Esas iş bunların kontroludur .Eğer sayı alacaksanız sayımı değlmi.Metin alacaksanız istediğiniz metinmi ?Combobox istediğiniz indextemi.Falan falan falan.
Belkide 5 satır veri yazacaksınızdır ama 15 nesneyi kontrol kodu yazacaksnızdır.
Ben öyyle yapıyorum.Mecburen.
On errro resume de kullanabilirsiniz ama onuda kontrol etmek lazım.İşiniz bitince on erroru on error goto 0 ile sfırlamnız lazım.Yani yok etmeniz lazım.
cdbl uzun Ondalıklı sayılar için.Csngl kısa ondalıklı sayılar için.Forumda bu konular geniş şekilde anlatıldı.Arama yaparsanız bulabilirsiniz.Değişken tanımları diye arayınız.:cool:
Clng uzun tam sayılar için,Cint kısa tamasalar için(32 bin küsüurun altında),Cbayt 256 pozitif tam sayı için,Cdate Tarih için
örnek :
Texboxlardaki değerler metindir.Ama sayıda içerebilir.İçinde sayı olup olmadığını kontrol et.
if isnumeric(Textbox1.text) then
'İşlemleri yap
end if
Sayın Evren Gizlen,
Açıklamalarınız ve yardımlarının için çok teşekkürler.
İyi çalışmalar.
 
Geri
Üst