VBA ortamında Vlookup, koşullu biçimlendirme ve ondalık ayar

Katılım
23 Şubat 2024
Mesajlar
16
Excel Vers. ve Dili
2016 excel
Merhaba.

1)Hücrelere uygulayabildiğimiz koşullu biçimlendirmeleri, Text boxlar için de yapabiliyor muyuz? Mesela, değerini bir hücereden alan bir text box düşünün.

Hücre değeri ne ise text box'a da aynı değer geliyor. Hücrede OK yazıyorsa, kırmızı; NOK yazıyorsa hücre renginin yeşil olmasını koşullu biçimlendirme ile sağyalabiliriz.

Aynı durum VBA Text boxlar için var mı?

2)Normal arayüzde, Viewlookup fonksiyonu için, ek bir parametre daha var, ISNA parametresi (Bildiğiniz gibi, Viewlookup karşılık varsa yazar, yoksa N/A falan gibi bir şey

döndürür. ISNA ile bunu aşabiliyoruz)

VBA'da Viewlookup karşılığını biliyor ve kullanıyorum, VBA'da ISNA'ya karşılık gelen bir parametre var mı?

3)Hücre değerinden veri alan bir text box yaptım, ancak gelen değer sayısal ve virgülden sonra bir hayli uzun.

Normal arayüzde, hücrede sağ tıklayıp ondalık değer uzantısını belirleyebiliyorum, VBA Text Box için bunu nasıl yapabilirim?

SAygılar....
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

1- VBA kısmında koşullu biçimlendirme yok. Biçimlendirmelerin tamamı kod ile yapılabilir.
2- WorksheetFunction.IsNA("Değer") şeklinde VBA da kullanabilirsiniz.
3- Textboxa veri gönderirken ayarlamalısınız. bu kod virgülden sonraki iki basamağı Textboxa gönderir TextBox1 = FormatNumber(rakam, 2) (rakam yerine kendi rakamınızı yazın)
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Bu linkte onay kutuları ile koşullu biçimlendirme tarif edilmiş.Bakabilirsiniz.
 
Katılım
23 Şubat 2024
Mesajlar
16
Excel Vers. ve Dili
2016 excel
Merhaba.

1- VBA kısmında koşullu biçimlendirme yok. Biçimlendirmelerin tamamı kod ile yapılabilir.
2- WorksheetFunction.IsNA("Değer") şeklinde VBA da kullanabilirsiniz.
3- Textboxa veri gönderirken ayarlamalısınız. bu kod virgülden sonraki iki basamağı Textboxa gönderir TextBox1 = FormatNumber(rakam, 2) (rakam yerine kendi rakamınızı yazın)
Cevaplarınız için teşekkür ediyorum.

Ancak, 3 ncü konu için anlamadığım bir konu var.

Benim kodum

TextBox1.Value = Sheets("Liste").Range("C77").Value

Bu kodun sonuna mı FormatNumber yazacağım? ve ne şekilde? ayrıca kendi rakamınız dediğiniz şey nedir?
VBA içeriği başka bir hücreden besleniyor, yani istediğim şey text boxun C77 hücresindeki değeri virgülden sonra 2 basamak olarak alması.
Bu arada, tahmin edeceğiniz gibi C77 hücresi de dinamik.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
rakam olarak ifade edilen kısım eşittir işaretinin sağ tarafıdır...

Sheets("Liste").Range("C77").Value
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Cevaplarınız için teşekkür ediyorum.

Ancak, 3 ncü konu için anlamadığım bir konu var.

Benim kodum

TextBox1.Value = Sheets("Liste").Range("C77").Value

Bu kodun sonuna mı FormatNumber yazacağım? ve ne şekilde? ayrıca kendi rakamınız dediğiniz şey nedir?
VBA içeriği başka bir hücreden besleniyor, yani istediğim şey text boxun C77 hücresindeki değeri virgülden sonra 2 basamak olarak alması.
Bu arada, tahmin edeceğiniz gibi C77 hücresi de dinamik.
Şöyle olmalı
Kod:
TextBox1 = FormatNumber( Sheets("Liste").Range("C77").Value , 2)
 
Katılım
23 Şubat 2024
Mesajlar
16
Excel Vers. ve Dili
2016 excel
Merhaba.

Konuyu dile getirmeden önce forumda aradım, Vlookup kullanımı ya da excelde ISNA ile kullanımı forumda var, hatta VBA tarafında da Vlookup var

ancak VBA kısmında Vlookup ile ISNA'yı beraber varsa da bulamadım, o yüzden tekrar sormak istedim.

Kodum benim aşağıdaki gibi.

Private Sub isim_Change()
On Error Resume Next
BURLEY.Value = Application.WorksheetFunction.VLookup(isim.Value, Sheets("Liste").Range("A1:G1000"), 2, 0)
End Sub

Formül, anlayacağınız üzere, "isim" kısmında yer alan değişkeni "Liste" adındaki çalışma sayfasında "A1" ve "G1000" hücrelerinde arıyor.
2 nci parametreyi istediğim için de, değişken bu aralıkta nerede ise onun bir sağ kısmındaki (yani B sütunundan) hangi değer varsa onu "BURLEY" kısmına yazdırıyor.


Gönderdiğiniz bu parametreyi dahil eymeye çalıştım ama her ne yaptı isem hata aldım, ya virgülden, ya da parantezden
WorksheetFunction.IsNA("Değer")

Mesela, aradığım değer, ilgili aralıkta yok ise "Bu betim yok" demesi için, VBA kodunu nasıl değiştirebileceğim konusunda yardımcı olabilirseniz çok
sevinirim.

Saygılar...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İnceleyiniz.. Belki faydası olabilir..

 
Katılım
23 Şubat 2024
Mesajlar
16
Excel Vers. ve Dili
2016 excel
İnceleyiniz.. Belki faydası olabilir..

Korhan Bey selamlar.
Öncelikle, verdiğiniz cevaplar için teşekkür ediyorum.
Çin atasözü gibi, ben açsam, bana bana balık tutmayı öğret, balık verme mottosu ile paylaşım yapıyor olmanız güzel.
Sizi temin ediyorum, sorularımı yazmaya başlamadan önce, hem forumda, hem de diğer sitelerde bulabilir miyim diye arıyorum.
Var olan bir konuyu, tekrar dile getirmenin sıkıcılığını da sizin adınıza az çok tahmin ediyorum.
41 bin küsür mesaj yazmışsınız, 2005 yılından beri katılımınız var, doğal olarak cevapları bir kenara bırakın, hangi konunun sorulduğunu bile biliyor olmanız normal.
Gönderdiğiniz videoyu izledim, mutlaka faydalı olacaktır, ancak spesifik bir konuya dair çözüm sunmuyor video, yanlış anlamadı isem genel bir
hata giderme mantığını vurgulamışsınız.
İki gün önce, destek ekibinden Ömer Bey (tekrardan teşekkürlerimi sunuyorum) bir soruma şu cevabı vermişti.

"Çözüm olarak aşağıdaki şekilde kodlarınızı tek başlık altında birleştirip kullanmayı deneyiniz."

Sayfanın linkini de atıyorum.


Tüm kodları tek satır altında birleştirmem gerektiğini biri bana söylememiş olsaydı, kuvvetle muhtemel bunları hata giderme mantığı ile bertaraf edemezdim.

Kendi açımdan bir açıklama yapma gereği duydum.
Saygılarımla...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhabalar,

Son zamanlarda yazdığınız mesajları gözlemlediğimde bir şeyleri öğrenme çabanızı görebiliyorum. Bu bağlamda size genel bilgiler içereceğini düşündüğüm bir linki paylaştım.. Amacım sadece katkı sağlamaktı..

VBA tarafı geniş içeriklere sahiptir. Temel bilgileriniz olmadan ilerlemeniz çokta mümkün değil. VBA ile tanışan birçok kişi genellikle temel bilgilere haiz olmadan kendi çapında arayüzler tasarlamaya kalkışıyorlar. Temel bilgiler olmadan kalkışılan bu süreç genellikle soru-cevap kopyala kendi projene yapıştır şeklinde ilerliyor. Durum böyle olunca projeler bir yerde mutlaka tıkanıyor. Bunları forumda sorulan sorulardan çok net görebiliyoruz.

Bende sizi doğru yönlendirebilmek adına sizinde ifade ettiğiniz gibi direkt Levrek (Ben bu deniz ürününü sevdiğim için örnekledim. Siz YERİNEKOY işlevi ile ürünü değiştirebilirsiniz.) vermek yerine oltayı vermeyi tercih ettim ki genel tercihim hep bu yöndedir. Bazı üyelerimiz yönlendirme yapıyorum diye içlerinden kızıyor olabilirler ama bu tamamen onların menfaatleri içindir.

Ben birazda olaya şöyle bakıyorum..

Bulunduğum platformda şu an itibariyle;

193.830 konu açılmış..
1.143.300 mesaj yazılmış..

Benim yaşadığım sorunun cevabı mutlaka olmalı diyerek araştırma yaparak çözüm aramayı tercih ederim. Bu aşamada da çözüme ulaşmak için doğru anahtar kelimeleri tercih etmek büyük önem arz ediyor. Eğer yanlış kelimeler ile çözüm aranırsa boşa vakit harcamış olursunuz. Bu da kişinin keyfini kaçırır.

Teknolojinin geldiği şu noktada aranılan cevaba ulaşamamanız çokta mümkün görünmüyor. Çok miktarda kaynak var.

Youtube üzerinde görsel ve uygulamalı anlatımlar bu konuda çok fayda sağlayabilir.

Ayrıca yapay zeka uygulamaları artık kodlama bilmeden birçok şeyi halledebilmenize olanak sağlıyor. (Bende arada sırada faydalanıyorum..)

Gördüğünüz gibi öğrenmek için birçok kaynak var. Yeter ki bu konuda azimli ve sabırlı olabilelim..

Size ve bu yola çıkmayı düşünecek arkadaşlara da kolaylıklar dilerim..
 
Üst