değikeni ismiyle çağırma

Excel hakkındaki soru ya da paylaşımlarınıza kategori bulamadıysanız bu alana yazabilirsiniz.

değikeni ismiyle çağırma

İleti#1)  halily » 20 Haz 2021 00:40

iyi akşamlar,
VBA da bir nesneye atıfta bulunurken controls("nesneAdı").value=5 yada me("nesneAdı") gibi bir yapı kullanarak o nesnenin değerini alabiliyor/değiştirebiliyoruz, aynı şeyi değişkenler içinde yapabiliyor muyuz?
mesela Uye, Say, Masa gibi değişkenlerimiz var, biz mesela variable("Say")=7 gibi bir kod yazmak mümkün mü? diyelim 3 çerçevemiz var (isimleri FrameUye, FrameSay, FrameMasa) ve bunların içinde toplam 7 seçenek kutusu var, seçenek kutularını for x=1 to 7 ile kontrol ediyoruz, eğer seçenek kutususunu değeri=true ise parentile çerçevenin adını alıp o ada sahip değişkene değer atamaya çalışıyoruz. örneğin 4. seçenek kutusu Üye çerçevesinin içinde 4.seçenek seçilmişse çervenin adından Uye kelimesini alıyor ve uye değişkenine belli bir değeri ataması gerekiyor
Evaluate fonksiyonunu da denedim ama galiba değişkenlerde işe yaramıyor
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
halily
Site Dostu
 
Kayıt: 23 May 2019 11:16
Meslek: yok
Yaş: 41
İleti: 527
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: adana

Cevap: değikeni ismiyle çağırma

İleti#2)  feraz » 20 Haz 2021 21:20

uye değişkenine belli bir değeri ataması gerekiyor


Yukardaki kısım tam anlaşılmıyor abey.
Uye=5 gibi diyeceğim ama sorunun çözümü bu değil sanıyorum.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 42
İleti: 6633
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: değikeni ismiyle çağırma

İleti#3)  halily » 20 Haz 2021 22:43

feraz hocam bu çalışmada, 3 Frame ve toplam 7 (3+2+2) tane seçenek kutusu var. seçenek kutularının tag özelliklerine değer atamışım
1 - FrmMasa çerçevesinde 3 option butonu var: OptionButton1.tag=1, OptionButton2.tag=2, OptionButton3.tag=3; Masadeğişkeni için
2 -FrmUye çerçevesinde 2 option butonu var: OptionButton4.tag=20 ve OptionButton5.tag=0; Uyedeğişkeni için (indirim oranı )
3 -FrmSay çerçevesinde 2 option butonu var: OptionButton6.tag=2 ve OptionButton7.tag=3; Saydeğişkeni için
ve 3 tana de değişkenim var; Masa, Uye ve Say
bu OptionButton'ları kontrol eden 1'den 7'e bir döngüm var
Kod: Tümünü seç
For x = 1 To 7
    If Me("OptionButton" & x).Value = True Then
        Dgsken = Replace(Me("OptionButton" & x).Parent.Name, "Frm", "")
        'değişken atama kodu=Me("OptionButton" & x).tag
    End If
Next x

diyelimki ben OptionButton1'yi seçtim
bu durumda Replace(Me("OptionButton" & 1).Parent.Name, "Frm", "") kodu ile OptionButton1'in parentının adını alıp Frm kısmını siliyor,
OptionButton1, FrmMasa çerçevesinde yer alıyor ve yukardaki işlem sonucunda Dgsken = Masa çıkıyor, benim amacım burada çıkan Masa değerini Masa değişkeni olarak kullanıp
Masa=Me("OptionButton" & x).tag ye denk bir sonuç üretmek.
select, if, dizi vs yöntemlerle bu yapılabilir
if Dgsken ="Masa" then Masa=Me("OptionButton" & x).tag benzeri kodla ama onları kullanmadan doğrudan nesne adıyla nesneye değer atama yapılıp çağrılabiliyorsa değişkeni de öyle çağırabilirmiyiz onu merak ediyorum.
özetle şöyle düşünün
1 - form açılırken x,y ve z değişkenlerine değer atadığımızı düşünün
Kod: Tümünü seç
Private Sub UserForm_Initialize()
x = 1
y = 2
Z = 3
End Sub

2 - ben formdaki bir metin kutusuna diyelim ki x yazıp butona bastım bir mesaj kutusu bana x=1 yazsın, metin kutusuna y yazarsam y=2 yazsın
Kullanıcı avatarı
halily
Site Dostu
 
Kayıt: 23 May 2019 11:16
Meslek: yok
Yaş: 41
İleti: 527
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: adana

Cevap: değikeni ismiyle çağırma

İleti#4)  feraz » 20 Haz 2021 23:28

Teferruatlıca anlattığınız için sağolun Halil hacam.
Dosyanızdaki kodları inceleyip anlamıştım kodları.

Sorunuza gelince çözümünü bilmiorum ve olmaz diye düşünüyorum bana en mantıklısı select case ile yapılır gibi geliyor ama siz zaten bunu istemiyorsunuz :)

Enum,type gibi kodlar var belki bunları karıştırıpta bişeyler yapılabilir ama bence zaten mantıksız olur.

Üstadlar belki daha iyisini bilirler.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 17:36
Konum: Almanya
Meslek: İşçi
Yaş: 42
İleti: 6633
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: değikeni ismiyle çağırma

İleti#5)  halily » 21 Haz 2021 06:15

teşekkürler feraz hocam, ihtiyaçtan değil meraktan sorulmuş bir soru, belirttiğiniz gibi select case hatta dictionary ile yada ne bileyim evaluate("fonksiyonAdı") ile bile çözülebir belki ama nesne çağırır gibi değişken de çağırabilseydik güzel olurdu)
Kullanıcı avatarı
halily
Site Dostu
 
Kayıt: 23 May 2019 11:16
Meslek: yok
Yaş: 41
İleti: 527
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: adana


Forum Diğer Excel İşlemleri

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron
Bumerang - Yazarkafe