Userform üzerindeki "textbox"ları, excel sayfasındaki hücrelerle özdeşleştirme

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Userform üzerindeki "textbox"ları, excel sayfasındaki hücrelerle özdeşleştirme

Userformda çok sayıda textbox ile çalışıyorum. Ad, soyadı, doğum yeri, doğum tarihi ... gibi.

benim yapmak istediğim şey, mesela "textbox1" i, sanki excel sayfa1'deki "A1" hücresiymiş gibi yapmak. çünkü, sayfadaki "A1" hücresinden "textbox1" e bilgi getirmek için ayrı; textbox1" den de "A1" hücresine bilgi göndermek için ayrı formül girmem gerekiyor, bu formüller de birbirinin tersi ve uğraşmak çok sıkıcı ve zaman kaybı gibi geliyor bana.

Belki ben acemi olduğum için bilmiyorumdur; ama ben şu şekilde yapıyorum:
Hücreden bilgi almak için;
Textbox1 = Range ("A1").Value

Textbox'tan hücreye bilgi kaydetmek için de;
Range ("A1")= Textbox1.value

Uzadı ama kısaca; Böyle teker teker ve ayrı ayrı uğraşmaktansa, textbox1'i "A1" hücresi haline getirebilir miyim? Kafam çok karışık, inşallah anlatabilmişimdir.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Textbox'un change olayına

Range ("A1").Value=TextBox1.text
--------------------------------------------------------

Sayfanın selectionchange olayına


if target.address="A1" then
TextBox1.text=Range ("A1").Value
end if

yazın. İstediğiniz işlem gerçekleşecektir
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
ilginize teşekkürler;

ancak bende çok sayıda metin kutusu (textbox) var, sizin söylediğiniz şekilde de, hepsine ayrı ayrı kod girmem gerekiyor. benim istediğim ise; combobox'larda olduğu gibi Mesela RowSource yazan yere, ilgili hücre aralığını girince, o aralığı göstermesi gibi, yani sadece bir yerde hücre bağlantısı gireyim ( mesela; =Sayfa1!A1 yazayım bir yere ) ve her zaman textbox o hücreyle ilişkili olsun. AL deyince "A1" den bilgi alsın; ver deyince "A1" e yazsın. Sanki userform üzerinde değil de, excel sayfasında çalışıyor gibi olayım istiyorum, başka bir kod gerekmeksizin, textbox1= "A1" hücresi ya da "A1" hücresi = textbox1.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bunu yapmak tabiki mümkün ancak excel vba textbox kontrolü bize böyle bir özellik sunmuyor.

İstediğimiz bu özelliği kendimiz oluşturmalıyız yani get-setproperties prosedürleri ile yapılmalıdır.

Eğer class nesne oluşturmak ile ilgili bilginiz varsa bunu yapabilirsiniz aksi halde
yani class nesneyi anlayabilmek için aşağıdaki linki inceleyiniz.

http://www.excel.web.tr/showthread.php?t=15876
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Değerli Alpi!

Verdiğiniz halkaya (link'e) girip baktım; ancak pek bir şey anladığımı sanmıyorum; çünkü o konu hakkında daha önceden hçbir bilgim yok. Daha sonra tekrar inceleyeceğim kısmet olursa.

Keşke bahsettiğim işlemi gerçekleştirmenin daha kolay bir yolu olsaydı... En iyisi ben vaz geçeyim bu sevdadan... :) Hem teker teker girince kod yazma alışkanlığı da kazanırım, değil mi? :)

İnşallah ben de birgün, bu sayfada "soru soran" olmaktan çıkıp, "sorulara cevap veren" olurum.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Demişsinizki
Keşke bahsettiğim işlemi gerçekleştirmenin daha kolay bir yolu olsaydı...

Bahsettiğim properties prosedürü ile bunu yapmak çok kolay

Amacım sizin bunu öğrenerek kendinizin bir properties oluşturmanız. Bu yüzden size link verdim. Eğer Class nesneyi anlamaya çalışırsanız çok yol katetmiş olacaksınız.

Hayırlı işlerinizde başarılar
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu örnek kodu bir değerlendirin.

Private Sub UserForm_Initialize()
For a = 1 To 3
Controls("TextBox" & a) = [a1].Value
Next
End Sub
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Verdiğiniz halkayı (link'i) inceledim, gerçekten güzel bir çalışma olmuş. Onu ve verdiğiniz önceki adresleri inceleyerek "class nesne" oluşturmayı öğrenmeye çalışacağım. Eğer öğrenebilirsem sizin yaptığınız çalışmayı, kendi çalışmama uyarlamaya çalışacağım. Bence, yaptığınız çalışma, sadece bana değil, çoğu arkadaşımıza faydalı olabilecek bir çalışmadır.

Ellerinize sağlık, Allah, her şeyi hayırlısıyla gönlünüze göre versin.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bir alternatif çözümde ben önereyim. Bir textboxun properties penceresindeki controlsource özelliğine hücre referansını yazarsanız, hücreyi textboxa bağlamış olursunuz.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Sayın leventm belirttiğiniz şekilde sadece textbox'ta bir değişiklik yapıldığında hücrede değişiklik oluyor.

Benim yaptığım class uygulamasında ise hücrede bir değişiklik olduğunda textbox'ta da değişiklik oluyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Benim yaptığım class uygulamasında ise hücrede bir değişiklik olduğunda textbox'ta da değişiklik oluyor.
controlsource özelliğindede aynı şekilde hücredeki bir değişiklikte aynı anda textboxa yansıyacaktır. Bunu userformun showmodal özelliğini false yaptıktan sonra form açıkken sayfa üzerinde değişiklik yaparak görebilirsiniz. Eğer kasdettiğiniz böyle bir durum ise bunuda belirtmek istedim.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,976
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
controlsource özelliğindede aynı şekilde hücredeki bir değişiklikte aynı anda textboxa yansıyacaktır. Bunu userformun showmodal özelliğini false yaptıktan sonra form açıkken sayfa üzerinde değişiklik yaparak görebilirsiniz.
Levent Bey hemen denedim dediğiniz aynı işlemi yapıyor güzel bir özellik yeni birşey öğrendim. Allah razı olsun..
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Rica ederim. Allah hepimizden razı olsun.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bunu bende şimdi leventm den öğrendim teşekkürler
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Kolaylık içinden kolaylık, güzellik içinden güzellik çıkıyor bu sayfada. Allah katkı sağlayan herkesten razı olsun.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Gerçekten pratik bir uygulama. Epey uğraşmama rağmen bu(#,##0.00)biçimdeki sayı formatını yapamadım. Hücreden UserForm'un üzerindeki TextBox'a veri verirken, yukarıdaki sayı biçimi gerçekleşmiyor. Onluk ve yüzlükleri biçimliyor, ama binlik kısmını formatlamıyor.
 
Katılım
1 Şubat 2011
Mesajlar
64
Excel Vers. ve Dili
2010 64 bit
Altın Üyelik Bitiş Tarihi
14.07.2019
levent bey çok pratik ve çok güzel bir bilgi çok teşekkür ederim
 
Üst